名前 題名 ▼ Saraさん > みなさん、こんばんは。 > > Delphi XE2(Update1)で、以下のコードをもちいてバージョン情報の取得をする場合、 > プロジェクトオプションのロケーションを日本語(日本)に設定すると、バージョン情報が > 取得できません。(標準の英語 (米国)に戻すと取得できる) > > 何故かわかる方、ご教示をお願いします。m(_ _)m > (まぁ、英語(米国)にしておけば、動作するので、困ってはいないんですが(^^; ) > > function GetVersionInfo(KeyWord: TVerResourceKey): string; > const > Translation = '\VarFileInfo\Translation'; > FileInfo = '\StringFileInfo\%0.4s%0.4s\'; > var > BufSize, HWnd: DWORD; > VerInfoBuf: Pointer; > VerData: Pointer; > VerDataLen: Longword; > PathLocale: String; > begin > BufSize := GetFileVersionInfoSize(PChar(Application.ExeName), HWnd); > if BufSize <> 0 then > begin > GetMem(VerInfoBuf, BufSize); > try > GetFileVersionInfo(PChar(Application.ExeName), 0, BufSize, VerInfoBuf); > VerQueryValue(VerInfoBuf, PChar(Translation), VerData, VerDataLen); > if not (VerDataLen > 0) then > raise Exception.Create('情報の取得に失敗しました'); > PathLocale := Format(FileInfo + KeyWordStr[KeyWord], > [IntToHex(Integer(VerData^) and $FFFF, 4), > IntToHex((Integer(VerData^) shr 16) and $FFFF, 4)]); > VerQueryValue(VerInfoBuf, PChar(PathLocale), VerData, VerDataLen); > //ここでVerDataLenが0になる・・・(英語(米国)だと0以外になる) > if VerDataLen > 0 then > begin > result := ''; > SetLength(result, VerDataLen); > StrLCopy(PChar(result), VerData, VerDataLen); > end; > finally > FreeMem(VerInfoBuf); > end; > end; > end; GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link