2013-04-22 30 views
8

Trong Delphi XE3, chức năng Copy có thể được sử dụng cho loại chuỗi có hoặc không có tham số thứ ba. Ví dụ:Tại sao chức năng Sao chép hoạt động khác trong Delphi XE3 64 bit?

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

Các bản in trên 234567890 nếu được biên dịch cho EXE 32 bit. Tuy nhiên khi cùng một mã biên dịch thành EXE 64 bit, nó sẽ không in được gì cả.

Tại sao điều này? Tôi phải thực sự thay đổi tất cả các mã như vậy, ví dụ: Copy (s, 2, Length (s) - 1) khi chuyển ứng dụng 32 bit sang 64 bit.

+11

http://qc.embarcadero.com/wc/qcmain.aspx?d=113805 – bummi

Trả lời

11

Tôi không thể sao chép hành vi bạn báo cáo. Khi tôi biên dịch mã đó trong một XE3 64 bit được cập nhật đầy đủ, mã đã tạo ra kết quả mong đợi.

tôi kết luận rằng một trong hai:

  1. Bạn chưa cập nhật đầy đủ cài đặt XE3 của bạn.
  2. Mã của bạn đang sử dụng một hàm Copy khác có trong mã của bạn.

Nhờ @bummi để chỉ ra QC report chứng minh rằng mục 1 là giải thích. Giải pháp của bạn là (rõ ràng) để áp dụng các bản cập nhật.

Các vấn đề liên quan