0

VerQueryValueを使用して、DLL の VersionInfo から文字列を取得しています。

Explorer によって表示される FileVersion (ファイルを右クリックし、[プロパティ]、[詳細]、[ファイル バージョン]) が VerQueryValue から取得した文字列と一致しないことを除いて、すべて正常に動作します。

VerQueryValue への他のすべての呼び出しは正常に機能していますが、FileVersion は ProductVersion と同じデータを取得しているようです。異なる言語 (C++ および Delphi) で記述された 2 つの異なる「バージョン情報」コンポーネントを試しましたが、どちらもこの動作を示すため、自分の (またはその) コードのバグではないと思います。

私が考えることができる2つの可能性:

  • VerQueryValue のバグ
  • または、Windows シェルは実際には FileVersion 文字列以外の何かを表示します。

どちらが可能性が高いか知っている人はいますか?

4

2 に答える 2

1

VerQueryValue の lpSubBlock パラメータ (2 番目のパラメータ) は、使用しているロケールの正しい値に設定されていますか? 英語 - 英国の場合、これは次のようになります。

StringFileInfo\080904E4\FileVersion

このページには、さらにいくつかの言語/文字セット識別子があります。

于 2009-01-22T15:35:06.157 に答える
-2

この KB160042を読んでください。答えが見つかると思います。

于 2010-11-10T06:48:08.093 に答える