在 Windows 2008 R2 服务器中(服务器核心安装)wow64 is no longer a required component .
我可以使用与 64 位应用程序相同的源代码编译 32 位应用程序(到处都有一些 ifdef)。
是否有一种工具可以将我的应用程序的两个版本放在一个可执行文件中,以便我的 32+64 位应用程序可以在纯 32 位 Windows 和仅 64 位 Windows 上运行?
请注意,我不是在谈论打包程序,因为打包程序本身是 32 位或 64 位的。
最佳答案
没有。 EXE 的 header 标有 EXE 中包含的代码所支持的处理器体系结构。使用 DUMPBIN.EXE -HEADERS 进行探索。
EXE 将“机器”类型报告为: x86: 0x14C x64: 0x8664 ARM :0x1C4
如果你想部署你的应用程序,构建一个 x86 版本,一个 x64 版本(ARM 稍后随 Win8 一起提供)并编写一个安装包 (MSI),它可以动态检查你所在机器的架构安装应用程序,然后放下一个或两个应用程序。例如,Adobe 现在就是这样在最新的 Flash 播放器下载中分发 Flash x86 和 Flash x64。
如果您想构建一个真正通用的二进制文件,请在 .NET 中构建它并将其标记为针对“任何”CPU。然后,您的应用程序将被 JIT 到您机器的架构(或者在加载项组件的情况下是托管进程)。
关于windows - 有没有一种工具可以组合 32 位 + 64 位应用程序并将它们打包成一个 32 + 64 位应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7692699/