编译器指令 WIN32 和 CPUX86、WIN64 和 CPUX64 在 Delphi 中是否可以互换?

Is compiler directive WIN32 and CPUX86, WIN64 and CPUX64 interchangeable in Delphi?

编译器指令 WIN32 和 CPUX86、WIN64 和 CPUX64 在 Delphi 中可以互换吗?

如果是,你更喜欢哪一个? 如果不是,为什么?

它们是否可以互换取决于您开发的平台。

一般来说,如果您只进行 Windows 开发,那么它们可以互换,否则不能互换。

WIN32 仅针对 Windows 32 位平台定义,WIN64 仅针对 Windows 64 位平台定义。

但是,CPUX86 是为几个平台定义的:Windows 32 位、OSX 32 位和 iOS 32 位模拟器。

目前 WIN64CPUX64 仅针对 Windows 64 位平台定义,因此目前它们可以互换,但将来可能会改变。

您应该使用哪个指令取决于您的代码。使用传达正确含义的指令。如果部分代码仅用于 Windows 32 位平台上的 运行 则使用 WIN32 指令,如果它意味着 运行 在任何平台上但在 32 位 x86 处理器下那么你应该使用 CPUX86.

Predefined Conditionals