windows - 在 VS_FIXEDFILEINFO 中获取错误的文件版本
问题描述
看起来我已经花了足够的时间试图解决这个问题来询问社区。
我需要一种可靠的方法来确定文件的版本并尝试为此使用GetFileVersionInfoSize
+ GetFileVersionInfo
。特别是,我使用dwFileVersionMS
and dwFileVersionLS
in VS_FIXEDFILEINFO
。with 确实适用于我硬盘驱动器上的几乎所有文件,除了ucrtbase.dll
位于c:\windows\system32
和c:\windows\syswow64
文件夹中的 . MSDN 声明这部分文件版本没有被重定向,但我得到了不同的行为。也就是说,资源管理器显示“10.0.18362.387”,但上述 WinAPI 函数的结构中的字段返回“6.2.18362.387”。注意,两者都不是本地化字符串,而是来自 VS_FIXEDFILEINFO 的二进制值。当我使用任何二进制编辑器打开 DLL 并搜索文件版本时,我发现它是正确的 - 0x00 0x00 0x0A 0x00 0x83 0x01 0xBA 0x47
.
谁能向我解释我在这里缺少什么?
解决方案
推荐阅读
- javascript - 异步需求
- swift - Swift 5:如何释放由共享库分配的内存
- angular - 尝试打开 MatSnackBar 时 this._portalOutlet 未定义
- r - 如何将 NA 值替换为赋予相同 ID 的先前非 NA 值
- python - 查找每个客户拥有的最大产品数量
- android - 在主线程中访问协程时出现非法状态异常
- php - Laravel 刀片不尊重日期转换格式
- elasticsearch - 使用弹性搜索在多边形内拾取对象
- mongoose - GraphQL“ID 不能代表值...”错误,但突变工作正常
- python - 获取 Numpy 数组的所有组合