gpt4 book ai didi

windows - Windows 如何解释多个 VersionInfo 资源?

转载 作者:可可西里 更新时间:2023-11-01 14:14:44 25 4
gpt4 key购买 nike

我目前正在研究 Windows 的 VersionInfo 资源。一个 VS_VERSION_INFO 资源中可以有多个 VS_VERSIONINFO/VS_FIXEDFILEINFO 结构,这有点令人困惑。

据我所知,您可以拥有多个具有不同语言 ID 的 RT_VERSION->VS_VERSION_INFO 资源。 (如图所示)

LangID

这 2 个语言 ID(0 和 1031)实际上每个都有 2 个不同的 VS_VERSIONINFO/VS_FIXEDFILEINFO

0 是一种中性语言,似乎比您实际的本地语言 ID(1031)优先。

对我来说,这似乎有点困惑和困惑。在一个 VS_VERSION_INFO 资源中怎么可能有多个 VS_VERSIONINFO 结构,这有什么意义呢? Windows如何解释多个资源、结构?当你调用 GetFileVersionInfo 时,怎么可能只得到一 block 缓冲区?

这一切对我来说意义不大,我找不到太多关于它的文档。

最佳答案

  1. 您必须区分文本信息和裸 VS_FIXEDFILEINFO block 。第一个 block 只存在一次。文本信息取决于语言。
  2. “Windows”并不偏爱某个特定的 ;) 资源管理器所做的是另一回事。它只是显示资源信息。但实际上这只是字符串信息,而不是固定版本信息中的信息。
  3. 当您调用 GetFileVersionInfo 时,您将获得所有语言 block ! VerQueryValue 用于访问他单独的 block 。
  4. Windows 中的安装程序和其他例程仅使用 VS_FIXEDFILEINFO block 。他们不关心任何文本 block 。而且这个区 block 只存在一次。

我假设浏览器只显示第一个文本 block ,而且也不喜欢特定的文本 block 。只需使用文本编辑器并交换资源文件中的 block 。但也许资源编译器会对它们重新排序。

要访问单独的部分: - 带“\”的 VerQueryValue 为您提供固定版本信息 block VS_FIXEDFILEINFO - 带“\VarFileInfo\Translation”的 VerQueryValue 为您提供翻译列表 - 使用“\StringFileInfo\langId_charset\keyname”你可以得到特定的字符串部分

您可以在 MSDN 中找到此信息

关于windows - Windows 如何解释多个 VersionInfo 资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23865037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com