Win32 API を使用した DLL および EXE からのバージョン情報の取得
DLL および EXE を扱う場合、そのバージョンを取得する必要が生じることがよくあります。数字。 Windows バージョンとは対照的に、この 4 つの部分からなるドット付きバージョン (x.x.x.x など) には、ファイルのプロパティの [詳細] タブからアクセスできます。
解決策: GetFileVersionInfo API
プログラムでバージョン情報を取得する鍵は、GetFileVersionInfo API にあります。詳細なドキュメントは、Microsoft の MSDN Web サイトの「バージョン情報の使用」という適切なタイトルで入手できます。
サンプル実装
C または C では、一般的な実装は次のようになります。 code:
<code class="c++">DWORD verHandle = 0; UINT size = 0; LPBYTE lpBuffer = NULL; DWORD verSize = GetFileVersionInfoSize(szVersionFile, &verHandle); if (verSize != NULL) { LPSTR verData = new char[verSize]; if (GetFileVersionInfo(szVersionFile, verHandle, verSize, verData)) { if (VerQueryValue(verData, "\", (VOID FAR* FAR*)&lpBuffer, &size)) { if (size) { VS_FIXEDFILEINFO *verInfo = (VS_FIXEDFILEINFO *)lpBuffer; if (verInfo->dwSignature == 0xfeef04bd) { TRACE( "File Version: %d.%d.%d.%d\n", ( verInfo->dwFileVersionMS >> 16 ) & 0xffff, ( verInfo->dwFileVersionMS >> 0 ) & 0xffff, ( verInfo->dwFileVersionLS >> 16 ) & 0xffff, ( verInfo->dwFileVersionLS >> 0 ) & 0xffff ); } } } } delete[] verData; }</code>
検査する DLL または EXE の実際のパスとファイル名で「szVersionFile」を調整することを忘れないでください。
以上がWin32 API を使用して DLL および EXE からバージョン情報を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。