ina*_*ruk 8 c++ 64-bit x86 winapi
我需要检测给定的.dll或.exe文件是32位还是64位
目前我只有一个解决方案:从指定文件中读取PE标头并从那里取出"机器"字段.
(规范:Microsoft可移植可执行文件和通用目标文件格式规范(.docx文件),参见"3.3.COFF文件头(对象和图像)"部分)
此字段最多可包含约20个值.其中三个是:
IMAGE_FILE_MACHINE_I386 ( == 32bit )
IMAGE_FILE_MACHINE_IA64 ( == 64bit )
IMAGE_FILE_MACHINE_AMD64 ( == 64bit )
Run Code Online (Sandbox Code Playgroud)
我的问题:
1)"机器"的位图映射是正确的还是我错过了什么?还有其他警告吗?
2)是否有更简单的方法来检测32/64位数(可能是PE格式的某些特定字段我没有注意到或某些特殊的系统功能)?
Dra*_*mon 16
GetBinaryType(...)返回SCS_32BIT_BINARY32位基于Windows的应用程序和SCS_64BIT_BINARY64位基于Windows的应用程序.