以编程方式确定本机 .exe 文件是32位还是64位

6

我需要知道指定的.exe文件是32位还是64位,运行它之前。IsWow64Process 在这里是无用的,因为尚未有进程。是否有其他API可以提供这些信息呢?


1
可能是重复的问题:如何查找本机dll是否编译为x64或x86? - Steve Townsend
实际上,我撤回了dup - 这对于EXEs要比DLLs容易得多。 - Steve Townsend
3个回答

12

如果你只想针对EXE文件而不是DLL文件执行此操作,只需使用GetBinaryType

确定文件是否为可执行文件(.exe文件), 如果是,则确定运行该可执行文件的子系统。


是的,这正是我想要的,而且比自己阅读PE头文件容易得多,这也是其他答案所建议的。谢谢。 - JSBձոգչ
1
你很幸运,你只需要EXEs :-) 那些复杂的扭曲似乎是为了DLL而必要的。在Win32中存在一个差距,依我看来。 - Steve Townsend

5

这个帖子肯定会对你有所帮助。

虽然是关于C#的,但它可以让你了解其中的思路。


1

这些信息可以在PE文件格式的一个头文件中找到(该格式用于exe和dll)。这些头文件中的信息可以通过编程方式提取(它们位于指定的偏移量处),或者更安全地通过Win32 API查询。

好的,Liviu为您提供了正确的指针。


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