ホームページ >バックエンド開発 >C++ >C/C で DLL または EXE ファイルのバージョンをプログラムで取得する方法

C/C で DLL または EXE ファイルのバージョンをプログラムで取得する方法

Susan Sarandon
Susan Sarandonオリジナル
2024-10-30 19:57:021032ブラウズ

How to Programmatically Get the Version of a DLL or EXE File in C/C  ?

DLL または EXE ファイルのバージョンをプログラムで取得する方法

DLL または EXE ファイルの製品バージョンとファイル バージョンを取得するには、ソフトウェア開発の重要な側面。 Win32 ネイティブ API を使用して C または C でこれを実行するには、次の手順に従います。

  1. GetFileVersionInfo API を使用します。

    この関数は、へのアクセスを提供します。指定されたファイルに関連付けられたバージョン情報。

  2. 実装例:

    次のコードは、GetFileVersionInfo API を使用してバージョン番号を取得する方法を示しています。 :

    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, so first two revision numbers
                        // come from dwFileVersionMS, last two come from 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;
    }

GetFileVersionInfo API を利用すると、DLL または EXE ファイルのバージョン情報を効果的に取得でき、バージョン チェックやその他の関連タスクを実行できるようになります。

以上がC/C で DLL または EXE ファイルのバージョンをプログラムで取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。