2010-10-24 133 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