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

10
我正在我的64位计算机上编译一个程序,但不确定它是否生成32位或64位的输出..在Windows上如何检查文件是32位还是64位?

Solaris已经全部是64位,Linux,Windows或??? - kmarsh
抱歉 - Windows系统.. 是的,那是相当重要的.. - stiank81
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
5个回答

10

您可以在Windows系统中使用GNUfile

您可以通过PEID运行该应用程序。

最后(并且首选,错误几率更小),您可以在安装了Visual Studio C ++(至少是Express版本)或Platform SDK之后,使用dumpbin / headers查看PE头文件值。

文件头中的第一个值告诉您架构:x86为0x14C或x64为0x8664。


1
运行良好!虽然没有通过PEID等工具运行它。使用Cygwin运行。完全正常工作。并且它不会显示0x14C / 0x86664,而是x86的PE32和x64的PE32 +。 - stiank81

8

运行程序并查看Windows任务管理器中的进程选项卡。如果进程名称后面有*32后缀,则为32位,否则为64位(前提是您在64位操作系统上)。


3
没错,那个方法可行,但仅仅运行一个程序来确定计算机是32位还是64位并不完全合理。而且你可能没有一台64位的电脑来进行这个操作。 - WheresAlice
1
如果您只有一台32位机器,那么64位应用程序将无法运行! - JamesRyan

2
你可以在cygwin环境下运行Linux的“file”命令进行测试。
你还可以添加一些调试语句,例如“print sizeof(int)”(形式化)进行检查。

听起来是个好主意。我正在运行Cygwin,但当我尝试使用“file”时,它会显示“命令未找到”。这在Cygwin上真的可用吗?如果是的话,我想我可能忘记安装某个软件包了..? - stiank81

1
你可以使用由MiTec开发的小型免费工具EXE Explorer。它还会显示二进制文件的许多其他属性。
我和原帖作者有着同样的问题,EXE Explorer对我非常有效。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接