2009-01-22 42 views
0

我使用VerQueryValue從DLL的VersionInfo中檢索字符串。VerQueryValue Fileversion與Windows Shell不匹配

所有的工作都很好,除了由資源管理器顯示的FileVersion(右鍵單擊文件,屬性,細節,「文件版本」)與我從VerQueryValue獲得的字符串不匹配。

我對VerQueryValue的所有其他調用工作正常,但FileVersion似乎檢索與ProductVersion相同的數據。我試過用不同的語言編寫的兩個不同的「版本信息」組件(C++和Delphi),並且都表現出這種行爲,所以我不認爲它是我的(或它們的)代碼中的錯誤。

兩種可能性,我能想到的:

  • 一個錯誤VerQueryValue
  • 或Windows外殼實際顯示比文件版本字符串以外的東西。

有人知道它可能是哪一個?

回答

1

VerQueryValue的lpSubBlock參數(第二個參數)是否設置爲您所在語言環境的正確值?對於英語 - 英國這將是:

StringFileInfo\080904E4\FileVersion 

This page有一些更多的語言/字符集標識符。

-1

看完這 KB160042,我想你會找到你的答案。

+0

歡迎來到SO。看看[faq](http://stackoverflow.com/faq)即可開始使用。請不要只是轉儲鏈接。提供他們指出的內容以及內容如何回答問題的解釋。 – pmr 2012-12-07 17:34:48