C または C で DLL または EXE ファイルのバージョンをプログラムで取得する方法
ソフトウェアの問題のトラブルシューティングやファイルの整合性の確認を行うときに、次のようなことがよくあります。特定の DLL または EXE ファイルのバージョン情報を取得するために必要です。ネイティブ Win32 API を利用することで、C および C 開発者はこれらのバージョン番号を効果的に取得できます。これらのバージョン番号は通常、ファイルのプロパティ ウィンドウの [詳細] タブに 4 つの部分からなるドット表記 (x.x.x.x など) として表示されます。
このタスクを実行するには、GetFileVersionInfo API を使用する必要があります。 MSDN に記載されているように、この API は、指定されたファイルに関連付けられたバージョン情報へのアクセスを提供します。この API を使用すると、開発者は DLL と EXE の製品バージョンとファイル バージョンを取得できます。
次のコード サンプルは、GetFileVersionInfo と VerQueryValue:
<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) { // DWORD is always 32 bits, regardless of system architecture // Get the version numbers from dwFileVersionMS and dwFileVersionLS 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>前述の API とコード サンプルを利用することで、プログラマーは DLL または EXE ファイルのバージョン情報を簡単に取得できます。この機能は、デバッグや詳細なファイル検査を行うときに非常に役立つことがわかります。
以上がC または C でプログラム的に DLL または EXE ファイルのバージョンを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。