2010-04-21 172 views
9

我正在編譯我的64位機器上的程序,但我不確定它是否會生成32位或64位輸出。如何檢查文件在Windows上是32位還是64位?檢查文件是32位還是64位 - 在Windows上

+0

Linux,Windows或? Solaris已經全部是64位。 – kmarsh 2010-04-21 12:16:31

+0

對不起 - windows ..是的,這是有點.. – stiank81 2010-04-21 12:19:22

+1

對於未來的答案尋求者,這個Windows資源管理器擴展允許您查看您的文件管理器內的32/64位體系結構信息,而無需使用外部工具:http://sanje2v.wordpress .com/2013/12/10/writing-property-handler-for-windows-explorermanta-property-extension /。還支持DLL,LIB,OBJ,O和A文件。 – Sanjeev 2013-12-16 04:03:12

回答

8

對於windows,您可以使用GNUfile
您可以運行應用程序通PEID 最後(和首選 - 犯錯誤的餘地) 隨着使用Visual Studio的C++(至少Express版本以上)或Platform SDK安裝,你可以使用DUMPBIN /頭看PE標頭值。

在文件頭的第一個值告訴你的體系結構:要麼0x14C爲x86或0x8664針對x64

+1

工作正常!雖然沒有打擾通過PEID等。與Cygwin一起。工作得很好。它不會說0x14C/0x86664,但PE32爲x86和PE32 +爲x64。 – stiank81 2010-04-26 08:56:45

7

只需運行它並查看Windows任務管理器中的進程選項卡。如果在進程名稱後有一個* 32後綴,那麼它是32位,否則它是64位(前提是你在64位操作系統上)。

+2

嗯,這是可行的,但只是運行一個程序來查明它是32位還是64位並不完全明智。此外,你可能沒有64位機器來做到這一點。 – kaerast 2010-04-21 12:38:53

+1

如果你只有一個32位的機器,那麼它將不會運行,如果它是一個64位的應用程序! – JamesRyan 2010-04-21 15:31:58

2

你可以在cygwin環境中從linux運行'file'命令來測試。

您還可以放置一些類似'print sizeof(int)'(示意性)的調試語句來檢查。

+0

聽起來像一個了不起的想法。我正在運行Cygwin,但是當我嘗試使用「文件」時,它說「找不到命令」。這是Cygwin上實際可用的嗎?如果是這樣,我想我一定忘了安裝一些軟件包..? – stiank81 2010-04-21 12:54:57

+0

請參閱http://cygwin.com/faq/faq.setup.html#faq.setup.what-packages – 2010-04-21 13:31:06

1

您可以通過邁特,一個小的免費工具使用EXE Explorer。它還顯示了它檢查的二進制文件的許多其他特性。

我和原來的海報有相同的問題,EXE Explorer對我的作品很好。

+0

這似乎只適用於EXE文件。 – Pietro 2014-10-02 14:28:39

相關問題