【问题标题】:VerQueryValue Fileversion doesn't match Windows ShellVerQueryValue 文件版本与 Windows Shell 不匹配
【发布时间】:2009-01-22 14:33:23
【问题描述】:

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

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

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

我能想到的两种可能性:

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

有人知道它可能是什么吗?

【问题讨论】:

    标签: winapi dll versioninfo


    【解决方案1】:

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

    StringFileInfo\080904E4\FileVersion
    

    This page 有更多的语言/字符集标识符。

    【讨论】:

      【解决方案2】:

      阅读本文 KB160042,我想你会找到答案的。

      【讨论】:

      • 欢迎来到 SO。查看faq 以开始使用。请不要只是转储链接。解释他们所指的内容以及该内容如何回答问题。
      猜你喜欢
      • 2019-01-03
      • 1970-01-01
      • 1970-01-01
      • 2011-10-31
      • 2017-08-03
      • 1970-01-01
      • 2022-01-01
      • 2018-07-20
      • 1970-01-01
      相关资源
      最近更新 更多