8

在 Delphi XE3 中,Copy函数可用于字符串类型,有或没有第三个参数。例如,

s := '1234567890';
Writeln(Copy(s, 2));

如果为 32 位 EXE 编译,上述打印 234567890。但是,当相同的代码编译为 64 位 EXE 时,它不会打印任何内容。

为什么是这样?在将 32 位应用程序移植到 64 位时,我实际上必须将所有此类代码更改为例如Copy(s, 2, Length(s) - 1) 。

4

1 回答 1

11

我无法重现您报告的行为。当我在完全更新的 64 位 XE3 中编译该代码时,该代码产生了预期的输出。

我的结论是:

  1. 您尚未完全更新您的 XE3 安装。
  2. 您的代码正在使用您的代码Copy中包含的不同函数。

感谢@bummi 指出证明第1 项是解释的QC 报告。您的解决方案是(显然)应用更新。

于 2013-04-22T08:36:44.997 回答