1

我正在寻找一种解决方案来确定给定的可执行文件是 64 位还是 32 位。

被测试的可执行文件可能是基于.NET 的,也可能不是。

我见过多种不同的技术,不确定一种与另一种有何不同。

我见过列出的技术:

最强大的方法是什么?

4

1 回答 1

1

我知道有两种方法:
1. 如果您需要在运行时检查它:使用 IsWow64Process。 http://msdn.microsoft.com/en-us/library/windows/desktop/ms684139(v=vs.85).aspx?ppud=4
如果它是 x86 进程 - 它将返回 true,否则 - false。
2. 如果您需要在运行时检查它,只需检查 EXE PE 格式。
如果 NT Header -> Optional header->Magic == IMAGE_NT_OPTIONAL_HDR64_MAGIC 它是 x64 exe/dll。

于 2012-10-31T12:01:59.767 回答