C または C で Win32 API を使用して DLL および EXE からバージョン情報を取得するにはどうすればよいですか?

DDD
リリース: 2024-11-01 08:23:02
オリジナル
435 人が閲覧しました

How can I retrieve version information from DLLs and EXEs using Win32 API in C or C  ?

DLL および EXE のバージョン情報の取得

多くのアプリケーションでは、ファイルからバージョン情報を取得する機能が必要です。この情報は、プロパティ ダイアログ ボックスにバージョン番号を表示するなど、表示目的で使用されます。

Win32 API は、バージョン情報を取得するために使用できる関数をいくつか提供します。一般的なアプローチの 1 つは、GetFileVersionInfo API を使用することです。

GetFileVersionInfo の使用

GetFileVersionInfo 関数は、ファイルのバージョン リソースに関する情報を取得します。この関数の使用に必要な手順は次のとおりです。

  1. ファイル パスと、バージョン情報へのハンドルを受け取る DWORD 変数へのポインタを指定して GetFileVersionInfo を呼び出します。
  2. Call GetFileVersionInfoSize withステップ 1 のファイル パスとハンドルを使用して、バージョン情報のサイズを決定します。
  3. ステップ 2 で取得したサイズのバッファを割り当てます。
  4. ファイル パス、ハンドルを指定して GetFileVersionInfo を再度呼び出します。 、サイズ、およびバージョン情報を取得するための手順 3 のバッファへのポインタ。

バージョン データの抽出

バージョン情報を取得したら、VerQueryValue 関数を使用して抽出できます。具体的な情報。次のサンプル コードは、製品バージョンとファイル バージョン番号を抽出する方法を示しています。

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
                );
            }
        }
    }
}
ログイン後にコピー

これらの手順に従うと、Win32 ネイティブ API を使用して DLL または EXE ファイルの製品バージョンとファイル バージョン番号をプログラムで取得できます。 C または C で。

以上がC または C で Win32 API を使用して DLL および EXE からバージョン情報を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!