【发布时间】:2012-10-20 20:30:52
【问题描述】:
我正在寻找一种解决方案来确定给定的可执行文件是 64 位还是 32 位。
被测试的可执行文件可能是基于.NET的,也可能不是。
我见过多种不同的技术,但不确定其中一种与另一种有何不同。
我见过的技术列表:
- 使用 dumpbin.exe(随 Visual Studio 或 Windows SDK 提供)
- Win32 函数 GetBinaryType http://msdn.microsoft.com/en-us/library/windows/desktop/aa364819(v=vs.85).aspx
- 检查文件头(在此 Q 中演示:How can I determine for which platform an executable is compiled?)
最可靠的方法是什么?
【问题讨论】:
-
你为什么要一个健壮的方法 - 他们要么工作要么不工作,对吗??
-
阅读superuser.com/questions/358434/…希望这对你有帮助
-
对于 .NET 可执行文件没有可靠的方法来执行此操作。 AnyCPU 意味着它所说的,它可以是任何一个。位数在运行时确定。
-
但是可以知道编译后的程序是强制运行32位还是64位架构。