1

重複の可能性:
Visual C++ でバージョン リソースから読み取る方法

私の C++ プロジェクトでは、ファイルのバージョン、実行可能な説明、著作権などを保存できる .rc ファイルを追加しました。

大丈夫です、私はコンパイルします、私はエクスプローラーに行きます->ファイルプロパティは、フォーム内のすべてのフィールドを表示します。

私の質問は、プロジェクトから独自のファイル バージョンを読み取る必要がある場合 (たとえば、フォームに表示するため)、どうすればよいですか?

ありがとう

4

2 に答える 2

6

Windows には、実行可能ファイルからバージョン情報を取得するための一連の API 呼び出しが用意されています。次のコード スニペットは、開始するのに役立ちます。

bool GetVersionInfo(
    LPCTSTR filename,
    int &major,
    int &minor,
    int &build,
    int &revision)
{
    DWORD   verBufferSize;
    char    verBuffer[2048];

    //  Get the size of the version info block in the file
    verBufferSize = GetFileVersionInfoSize(filename, NULL);
    if(verBufferSize > 0 && verBufferSize <= sizeof(verBuffer))
    {
        //  get the version block from the file
        if(TRUE == GetFileVersionInfo(filename, NULL, verBufferSize, verBuffer))
        {
            UINT length;
            VS_FIXEDFILEINFO *verInfo = NULL;

            //  Query the version information for neutral language
            if(TRUE == VerQueryValue(
                verBuffer,
                _T("\\"),
                reinterpret_cast<LPVOID*>(&verInfo),
                &length))
            {
                //  Pull the version values.
                major = HIWORD(verInfo->dwProductVersionMS);
                minor = LOWORD(verInfo->dwProductVersionMS);
                build = HIWORD(verInfo->dwProductVersionLS);
                revision = LOWORD(verInfo->dwProductVersionLS);
                return true;
            }
        }
    }

    return false;
}
于 2011-07-20T14:20:07.150 に答える
2

実行可能ファイルで次の関数を使用します。

http://msdn.microsoft.com/en-us/library/ms646981%28v=VS.85%29.aspx

于 2011-07-20T14:16:45.120 に答える