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

Posted

技术标签:

【中文标题】编译器指令 WIN32 和 CPUX86、WIN64 和 CPUX64 在 Delphi 中是不是可以互换?【英文标题】:Is compiler directive WIN32 and CPUX86, WIN64 and CPUX64 interchangeable in Delphi?编译器指令 WIN32 和 CPUX86、WIN64 和 CPUX64 在 Delphi 中是否可以互换? 【发布时间】:2015-11-07 12:44:51 【问题描述】:

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

如果是,首选哪一个? 如果不是,为什么?

【问题讨论】:

文档可以告诉你答案:docwiki.embarcadero.com/RADStudio/en/… 【参考方案1】:

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

一般来说,如果您只进行 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

【讨论】:

很好而明确的答案。其实我不知道我为什么要问这个简单的问题,我应该自己想出来的。 很好,你提到了参考预定义条件 - 如果它在结论句中可能会更好。

以上是关于编译器指令 WIN32 和 CPUX86、WIN64 和 CPUX64 在 Delphi 中是不是可以互换?的主要内容,如果未能解决你的问题,请参考以下文章

win32汇编中nmake用法

服务器CPU X86 ARM PowerPC RISC

你如何为x64编译静态pthread-win32 lib?

10天复习

go编译

在 32 位 win7 上部署 Qt 应用程序 - 在 Win7 x64 上工作(和编译)