编译x86和x64

Pat*_*man 6 windows delphi 32bit-64bit delphi-xe2

是否可以以这种方式设置编译器,以便为x86和x64编译可执行文件/ DLL?我的意思是,一个文件适合两个平台.

我只知道单独选择平台的方法,但我想要两者.

可能吗?

hai*_*img 19

x64主机完全支持x86可执行文件.例如,您在32位模式下编译的任何EXE都将在32位 64位主机上运行时没有任何问题.如果你不知道为什么需要64位可执行文件,你可能不需要,所以32位可执行文件就足够了.

但是,对于DLL,它是另一回事.DLL的体系结构(32位或64位)必须与将要使用DLL的可执行文件匹配.例如,如果您正在为x64 Windows编写Explorer扩展,则explorer.exe将为64位,因此您的DLL也必须是64位,否则无法加载.

在Windows上无法将两种不同的体系结构组合成一个DLL或EXE.因此,如果需要同时支持32位和64位主机,则需要两个DLL.

  • @haimg:只有安装了WOW64组件,32位EXE才能在64位Windows系统上运行.在早期的64位Windows版本中,WOW64是必需的组件,但从Windows Server 2008 R2开始,WOW64现在是可选的,因此它可能安装也可能不安装. (6认同)
  • 在32位支持逐步退出普通服务器之前,这将是一个寒冷的日子;-)因此,我不会浪费任何时间转换为64位可执行文件.这样做是因为有需要,或者您是从头开始,而不是因为您担心您的应用程序没有在服务器上运行. (3认同)