2010-10-24 132 views
1

我知道,在Mac OS X上,您可以使用lipo将多个以不同体系结构为目标的二进制文件合并为一个二进制文件。我想知道在Windows端是否有类似的解决方案。谢谢。Windows上的胖二进制文件?

+0

[如何将64位和32位可执行文件绑定为一个?](https://stackoverflow.com/questions/38759982/how-to-bind-64bit-and-32bit-executable-into-one) – 2017-06-02 13:04:12

回答

5

不幸的是,所有的Windows体系结构在PE头中都使用相同的结构,所以没有。不过,可以将Windows可执行文件和DOS可执行文件融合在一起,因为DOS使用MZ头代替。

+0

啊!那么,这是一个无赖,但谢谢你回答这个问题。 – rwb 2010-10-24 16:41:34

+1

但是,您可以根据体系结构安装不同的版本的安装程序?不一样,但也许够好吧? – 2010-10-24 16:49:47

+0

是的,我可以创建一个安装程序来安装不同的版本。我只是在寻找更好的解决方案,以便它与Mac OS X版本保持一致。 – rwb 2010-10-24 17:40:16

0

我认为您正在尝试ADS,它已被添加到NTFS以提供与Mac上类似的功能。尽管NTFS支持多个流,PE加载器应该选择正确的,我不确定它是否被实现。

+0

这听起来不对。你能指点我一些支持这个MSDN链接吗? – mrduclaw 2010-10-24 16:56:08

+0

@mrduclaw尝试这一个:http://msdn.microsoft.com/en-us/library/bb540537%28v=VS.85%29.aspx – ruslik 2010-10-24 17:07:36

+1

对不起,也许我不明确;英语不是我的第一语言。我了解备用数据流是什么以及如何使用它们。我从来没有读过关于使用它们来选择加载哪个二进制文件的Windows加载程序的任何信息。 IMAGE_NT_HEADERS是否需要将此字段放在其中某处,以便IMAGE_OPTIONAL_HEADER指向正确的AddressOfEntry?所以MSDN链接讨论使用它们的Windows加载器是我正在寻找的。 – mrduclaw 2010-10-24 17:23:42