Delphi XE2 で作成したアプリケーションのバージョン情報が取得できない

Delphi XE2 で作成したアプリケーションのバージョン情報が取得できない

自身のバージョンを取得する関数↓が思うように動作しない
function GetApplicationVersion: string;
var nSize, nRead: Cardinal;
    pBlock: Pointer;
    pValue: PChar;
begin
    nSize := GetFileVersionInfoSize(PChar(Application.ExeName), nSize);
    if (nSize > 0) then begin
        pBlock := AllocMem(nSize);
        try
            if GetFileVersionInfo(PChar(Application.ExeName), 0, nSize, pBlock) then begin
                if VerQueryValue(pBlock, '\StringFileInfo\041103A4\FileVersion', Pointer(pValue), nRead) then begin
                    Result := pValue;
                end;
            end;
        finally
            FreeMem(pBlock);
        end;
    end;
end;
VarFileInfo\Translation 辺りを利用して、格納されているリソース言語をチェックしてみたが 041103A4 までは、入っている様子

ということで Resource Hacker を利用して、リソースを確認

すると、VarFileInfo の Translation は、日本語(0411)+SJIS(03A4)でありながら、BLOCK は英語のまま...

コメント