【发布时间】:2011-12-22 07:36:43
【问题描述】:
我们有一个大型的 Delphi XE 代码库,希望移植到 64 位。
我拥有 Delphi XE2 许可证,但我找不到任何警告或提示可以帮助我检测有效的 32 位结构,这些结构现在可能导致 64 位平台下的数据丢失。例如,对于 32 位编译器完全有效的 THandle 到 Cardinal 分配在为 Win64 编译时不会引发任何警告。
在使用 Delphi 2009 迁移到 Unicode 时,我们收到了大量警告,这些警告对我们跟踪和修复可疑代码很有帮助。使用 XE2,我什么也找不到。我无法想象在编译器级别没有集成任何东西来避免我们对所有代码进行手动审查。
我错过了什么吗?如果您尝试过,您是如何将项目移植到 64 位的?
谢谢!
【问题讨论】:
-
THandle不再映射到integer,而是映射到NativeUInt(即只有Win32下的cardinal)。这可能有助于确定问题。 -
我似乎也无法在 XE (1) 中获取此类消息,例如将 int 分配给字节...
-
@GolezTrol :你是对的,但是从我的 POV 分配来看,当它们为 Win32 或 Win64 编译时可能会导致不同的结果,应该引入一类新的编译器警告.
标签: windows delphi 64-bit delphi-xe2 win64