检查文件是32位还是64位 - 在Windows上

问题描述:

我正在编译我的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

对于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

只需运行它并查看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

你可以在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

您可以通过迈特,一个小的免费工具使用EXE Explorer。它还显示了它检查的二进制文件的许多其他特性。

我和原来的海报有相同的问题,EXE Explorer对我的作品很好。

+0

这似乎只适用于EXE文件。 – Pietro 2014-10-02 14:28:39