首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >32位和64位的单个可执行文件(不含WOW64)

32位和64位的单个可执行文件(不含WOW64)
EN

Stack Overflow用户
提问于 2010-01-31 18:32:55
回答 3查看 2.4K关注 0票数 3

我正在编写一个可以在16/32\64位系统上运行的小工具。通过将16位版本压缩为32位并在visual studio 2008 (/STUB -MS-DOS Stub File Name )中应用/stub开关,我的旧实用程序可以在32位和16位上运行。

我正在寻找一种方法来用我的64位可执行文件做同样的事情。目标64位系统是Win PE 64位,并且没有安装WOW64。

有可能吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-01-31 18:37:28

Windows可执行文件的DOS存根使用MZ节,而32位和64位可执行文件都使用PE节。这允许DOS存根存在于任一Windows可执行文件中,但在尝试组合32位和64位可执行文件时会导致冲突。

票数 3
EN

Stack Overflow用户

发布于 2010-01-31 18:45:27

你应该把你的32位和64位的util打包到另一个exe的资源中,让我们称它为32位的启动器。然后,您的启动器应该检测它是从哪个系统启动的,然后从它的资源中提取适当的二进制文件并启动它。

票数 2
EN

Stack Overflow用户

发布于 2010-02-01 09:20:23

Windows 32位运行wowexec.exe的16位应用程序,Win64运行wow64的32位应用程序。所以如果没有wow64,你的程序就不可能在Windows上创建一个通用的启动器。(注意: Mac OSX无论如何都支持单一二进制文件中的多个架构)

我能想到的最好的方法是创建一个MSI安装程序包,并将两个32/64exe都放入其中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2171335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档