0

我正在使用VerQueryValue从 DLL 的 VersionInfo 中检索字符串。

一切正常,除了资源管理器显示的 FileVersion(右键单击文件、属性、详细信息、“文件版本”)与我从 VerQueryValue 获得的字符串不匹配。

我对 VerQueryValue 的所有其他调用都运行良好,但 FileVersion 似乎检索到与 ProductVersion 相同的数据。我已经尝试过用不同语言(C++ 和 Delphi)编写的两种不同的“版本信息”组件,并且都表现出这种行为,所以我认为这不是我(或他们的)代码中的错误。

我能想到的两种可能:

  • VerQueryValue 中的一个错误
  • 或者,Windows shell 实际上显示的不是 FileVersion 字符串。

有人知道它可能是哪个吗?

4

2 回答 2

1

VerQueryValue 的 lpSubBlock 参数(第二个参数)是否设置为您所在区域设置的正确值?对于英语 - 英国,这将是:

StringFileInfo\080904E4\FileVersion

这个页面有更多的语言/字符集标识符。

于 2009-01-22T15:35:06.157 回答
-2

Read this KB160042, i think you will find your answer.

于 2010-11-10T06:48:08.093 回答