ホームページ > バックエンド開発 > C++ > DLL と EXE のバージョン情報をプログラムで取得するにはどうすればよいですか?

DLL と EXE のバージョン情報をプログラムで取得するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-10-29 14:17:02
オリジナル
472 人が閲覧しました

How to Programmatically Get Version Information for DLLs and EXEs?

DLL および EXE のバージョン情報をプログラムで取得する方法

ソフトウェア開発の領域では、ダイナミック リンク ライブラリ ( DLL) と実行可能プログラム (EXE)。 C または C からアクセスできる Win32 ネイティブ API を利用することで、開発者はこれらの実行可能エンティティの製品およびファイル バージョンをシームレスに取得できます。

GetFileVersionInfo API: バージョン情報のロック解除

バージョン情報のロックを解除する鍵GetFileVersionInfo API にあります。この強力な関数は、指定された DLL または EXE ファイルに関連するデータをバッファに設定します。その使用法の複雑さを詳しく見てみましょう。

  • ファイル サイズの決定: GetFileVersionInfoSize は、必要なバッファ サイズを提供することでメモリ割り当ての最適化をガイドします。
  • バージョン データの取得: GetFileVersionInfo 権限バッファ内に安全に保存されているバージョン情報にアクセスします。
  • バッファのクエリ: VerQueryValue は、ユーザーの事前定義基準に一致するバージョン データのサブセットを抽出します。
  • バージョン番号の解釈: 基礎となるものを理解することによってバージョン情報の構造を利用すると、開発者は dwFileVersionMS 値と dwFileVersionLS 値から 4 つの部分からなるドット付きバージョン番号 (x.x.x.x) を正確に解析できます。

実際のバージョン取得の例

次のコードサンプルは、GetFileVersionInfo API の実際のアプリケーションを示しています。

<code class="python">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) {
                    // Parse the file version into a four-part dotted string
                    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>
ログイン後にコピー

結論として、GetFileVersionInfo API は、DLL および EXE からプログラムによってバージョン情報を取得するための包括的なソリューションを提供します。この機能を利用することで、開発者はバージョン取得タスクを自動化し、ソフトウェア開発作業の正確さと効率を確保できます。

以上がDLL と EXE のバージョン情報をプログラムで取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート