2013-04-22 32 views
8

在Delphi XE3中,函数可以用于带有或不带第三个参数的字符串类型。例如,为什么复制函数在64位Delphi XE3中表现不同?

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

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

这是为什么?我必须将所有这些代码实际上改为例如复制(s,2,长度 - 1)将32位应用程序移植到64位时。

+11

http://qc.embarcadero.com/wc/qcmain.aspx?d=113805 – bummi 2013-04-22 08:36:19

回答

11

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

我得出这样的结论之一:

  1. 你还没有完全更新您的XE3安装。
  2. 您的代码正在使用代码中包含的其他Copy函数。

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

相关问题