VerQueryValue 文件版本与 Windows Shell 不匹配

发布于 2024-07-12 10:52:59 字数 730 浏览 13 评论 0 原文

我正在使用 VerQueryValue 从 a 检索字符串DLL 的版本信息。

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

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

我能想到两种可能性:

  • VerQueryValue 中的错误
  • ,或者 Windows shell 实际上显示了 FileVersion 字符串以外的其他内容。

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

I'm using the VerQueryValue to retrieve strings from a DLL's VersionInfo.

All works fine, except that the FileVersion displayed by Explorer (right-click on file, Properties, Details, "File Version") doesn't match the string I get from the VerQueryValue.

All my other calls to VerQueryValue are working fine, but FileVersion seems to retrieve the same data as ProductVersion. I've tried two different "version info" components written in different languages ( C++ and Delphi), and both exhibit this behaviour, so I don't think it's a bug in my (or their) code.

Two possibilities I can think of:

  • A bug in VerQueryValue
  • or, the Windows shell actually displays something other than the FileVersion string.

Anybody know which it's likely to be?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦里°也失望 2024-07-19 10:52:59

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

StringFileInfo\080904E4\FileVersion

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

Is the lpSubBlock parameter (the 2nd parameter) of VerQueryValue set to the correct value for the locale you're in? For English - United Kingdom this would be:

StringFileInfo\080904E4\FileVersion

This page has some more language/character-set identifiers.

尾戒 2024-07-19 10:52:59

读这个
KB160042,我想您会找到答案。

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文