在 Delphi XE3 中,Copy函数可用于字符串类型,有或没有第三个参数。例如,
s := '1234567890';
Writeln(Copy(s, 2));
如果为 32 位 EXE 编译,上述打印 234567890。但是,当相同的代码编译为 64 位 EXE 时,它不会打印任何内容。
为什么是这样?在将 32 位应用程序移植到 64 位时,我实际上必须将所有此类代码更改为例如Copy(s, 2, Length(s) - 1) 。
在 Delphi XE3 中,Copy函数可用于字符串类型,有或没有第三个参数。例如,
s := '1234567890';
Writeln(Copy(s, 2));
如果为 32 位 EXE 编译,上述打印 234567890。但是,当相同的代码编译为 64 位 EXE 时,它不会打印任何内容。
为什么是这样?在将 32 位应用程序移植到 64 位时,我实际上必须将所有此类代码更改为例如Copy(s, 2, Length(s) - 1) 。
我无法重现您报告的行为。当我在完全更新的 64 位 XE3 中编译该代码时,该代码产生了预期的输出。
我的结论是:
Copy
中包含的不同函数。感谢@bummi 指出证明第1 项是解释的QC 报告。您的解决方案是(显然)应用更新。