64ビットまたは32ビットであることを検出する方法私が持っている時点で32ビットまたは64ビット所与のPEファイル(EXEまたはDLL)がIが所定の.dllまたは.exeファイルであるか否かを検出する必要が
1つの解決策:指定されたファイルからPEヘッダーを読み取り、そこから 'Machine'フィールドを取得します。
(仕様: "3.3 COFFはヘッダー(オブジェクトとイメージ)ファイル" Microsoft Portable Executable and Common Object File Format Specification(.docxのファイル)セクションで)
このフィールドには、約20までの値を取ることができます。それらのうち3つは、次のとおりです。
IMAGE_FILE_MACHINE_I386 (== 32bit)
IMAGE_FILE_MACHINE_IA64 (== 64bit)
IMAGE_FILE_MACHINE_AMD64 (== 64bit)
私の質問:
1)「マシンのマッピングをbit化するためには正しいですか、私は何かを逃したのですか?その他の注意点はありますか?
2)32/64ビット数を検出する簡単な方法はありますか(おそらくPEフォーマットの特定のフィールドに気付かなかったか、または特別なシステム機能があります)。
dup:http://stackoverflow.com/questions/971689/win32-api-to-tell-whether-a-given-binary-exe-or-dll-is-x86-x64-or-ia64/971715 #971715 –
この他の質問はアーキテクチャについて質問していますが、これは語のサイズを尋ねています。 – Draemon
文書は2017年の時点でv8からv11に更新されています。http://www.microsoft.com/whdc/system/platform/firmware/PECOFF.mspx –