是否有一个工具可以将32位+ 64位应用程序组合在一起并将它们打包在一个32 + 64位应用程序中

时间:2011-10-07 20:44:42

标签: windows language-agnostic executable 32bit-64bit native-code

在Windows 2008 R2服务器(服务器核心安装)wow64 is no longer a required component

我可以使用与64位应用程序相同的源代码编译32位应用程序(在这里和那里有一些ifdef)。

是否有一个工具可以将我的应用程序的两个版本放在一个可执行文件中,以便我的32位64位应用程序可以在纯32位Windows上运行只有64位Windows?< / p>

请注意,我不是在讨论打包器,因为打包器本身将是32位或64位。

1 个答案:

答案 0 :(得分:6)

没有。 EXE的标头标有EXE中包含的代码支持的处理器体系结构。使用DUMPBIN.EXE -HEADERS进行探索。

EXE报告“机器”类型为: x86:0x14C x64:0x8664 ARM:0x1C4

如果要部署应用程序,请构建适用于x86的版本(适用于x64的ARM版本(稍后使用Win8版本的ARM))和作者安装程序包(MSI),它可以动态检查您所在机器的体系结构安装应用程序,并放下一个或两个应用程序。例如,这就是Adobe现在在最新的Flash播放器下载中分发Flash x86和Flash x64的方式。

如果您想构建一个真正的通用二进制文件,请在.NET中构建它并将其标记为目标“任何”CPU。然后,您的应用程序将被嵌入到您的计算机的体系结构中(或者在加载项组件的情况下是托管进程)。