2013-04-22 31 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項是解釋。您的解決方案(顯然)是應用更新。

相關問題