为什么在64位Delphi XE3中,复制函数的行为不同?

8

在Delphi XE3中,Copy函数可以用于string类型,无论是否有第三个参数。例如:

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

如果编译成32位exe文件,以上代码将打印234567890。但是,当相同的代码编译为64位exe时,它将不会打印任何内容。

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


11
抱歉,我只能以英文回答您的问题。如果您需要翻译,请提供原始文本并告诉我需要将其翻译成哪种语言。 - bummi
1个回答

11

我无法复现你所描述的行为。当我在完全更新的64位XE3中编译该代码时,代码生成了预期的输出。

因此,我得出以下结论:

  1. 您没有完全更新您的XE3安装程序。
  2. 您的代码正在使用不同的Copy函数,该函数包含在您的代码中。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接