windows - 有没有一种工具可以组合 32 位 + 64 位应用程序并将它们打包成一个 32 + 64 位应用程序

标签 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 上运行?

请注意,我不是在谈论打包程序,因为打包程序本身是 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/

相关文章:

python - 如何使用Python(Windows)获取所有IP地址?

c - 如何验证文件名在 Windows 中是否有效?

algorithm - 生成 1,000,000 个随机排列的样本

ruby - 寻找 "real"使用延续的例子

java - 如何将 .java 或 .jar 文件转换为 Linux 可执行文件(没有 .jar 扩展名,这意味着它不是 .jar 文件)

java - 如何创建可执行的可执行 jar (Maven-Jfoenix-Hibernate-IntelliJ) __ 有人可以使主题解析/关闭吗

powershell - 图标损坏与Powershell exe到ico转换器

windows - 在批处理文件中删除目录树的最快方法

windows - Windows 上的可执行模块是否有理想的大小?

使字符串变得漂亮或丑陋的算法