トップページ ソースコードライブラリ Borland C++ Compiler 5.5
バージョン情報の取得
GetFileVersionInfoを使って、バージョン情報を得る方法を説明しています。
サンプルコード
AnsiString __fastcall GetExeVersion(AnsiString FileName)
{
    DWORD dwSize;
    DWORD dwReserved;
    LPVOID lpBuffer;
    AnsiString version;

    dwSize = ::GetFileVersionInfoSize(FileName.c_str(), &dwReserved);
    lpBuffer = ::HeapAlloc(::GetProcessHeap(), HEAP_ZERO_MEMORY, dwSize );
    if( lpBuffer && ::GetFileVersionInfo(Application->ExeName.c_str(), 0, dwSize, lpBuffer )) {
        LPVOID lpStr;
        UINT dwLength;                

        ::VerQueryValue( lpBuffer,
                        "\\StringFileInfo\\041103A4\\FileVersion",
                       &lpStr, &dwLength );
        version = (LPTSTR)lpStr;
    }
    if(lpBuffer){
        ::HeapFree( ::GetProcessHeap(), 0, lpBuffer );
    }
    return version;
}
AnsiString __fastcall GetEasyExeVersion(AnsiString FileName)
{
    AnsiString Version = GetExeVersion(FileName);
    int Pos = Version.AnsiPos(".");
    AnsiString Res = Version.SubString(1,Pos-1);
    Version.Delete(1,Pos);
    Pos = Version.AnsiPos(".");
    if(3 <= Pos){
        Res += "." + Version.SubString(1,Pos-1);
    }else{
        Res += ".0" + Version.SubString(1,Pos-1);
    }
    return Res;
}

概要

プロジェクトオプションでバージョン情報を組み込むように指定したときにその情報を実行ファイルから取り出すコード。

バージョン情報が1.2.3.4の場合、GetExeVersion()は>1.2.3.4を返し、GetEasyExeVersion()1.02を返す。

ナビゲーション
プログラミングは道連れ
ソースコードライブラリ
Borland C++Builder
デバッグ時のみ実行する/しない
タスクアイコンの表示/非表示
ホットキーの登録
文字列の置換
システムフォルダの取得
実行時にFormStyleのStayOnTopを切り替える
JPEGの読み込み
TCppWebBrowser内のHTMLを制御する
JPEG形式で保存
動的にActiveXを作成する(PowerPointの一例)
トップページ ソースコードライブラリ Borland C++ Compiler 5.5