3

特定の dll (例: FileDescription) からバージョン情報を取得する必要がある exe があります。私のコードは既に GetFileVersionInfoSize と GetFileVersionInfo を呼び出しています。しかし、 http://msdn.microsoft.com/en-us/library/ms647464(v=vs.85)やその他の例を調べた後でも、VerQueryValue を適用する方法がわかりません。

VerQueryValue とその使用法を適用する方法について、誰かが説明/光を当てることができますか? ありがとう。

4

2 に答える 2

6

VerQueryValue を介して FileDescription を取得するには、VerQueryValue ドキュメントからサンプル コードをコピー アンド ペーストし、必要に応じて変更します。

そのサンプル コードの背後にある基本的な考え方は次のとおりです。

  • 2 番目の形式 (\VarFileInfo\Translation) を使用して、翻訳のリストを取得します。
  • 次に、3 番目の形式 (\StringFileInfo\lang-codepage\string-name) を使用して文字列を取得します。

(最初の形式 () は、VS_FIXEDFILEINFO、バージョン番号、フラグなどの一部の数値のセットのためのものです。)

サンプル コードは、各言語の FileDescription を取得します。言語が 1 つしかないことがわかっている場合 (たとえば、自分のアプリを見ていて、それが翻訳されていないため)、ループをスキップして最初の言語だけを返すことができます。より一般的に使用するために、ユーザーの言語に最もよく一致するものを選択し、それを返す必要があります。

于 2012-06-28T20:33:52.730 に答える