在本文(http://blogs.msdn.com/oldnewthing/archive/2006/12/21/1340571.aspx)之后的C中,我们已成功地从Windows文件中获取文件版本信息,但是有些文件似乎有不同的机制来存储版本信息,没有在文章中提到,并想知道是否有人在这里有任何想法。
文件的一个示例是system32 / oledlg.dll。逐字节地浏览文件,我们来到一个存储版本信息的块:
F^@i^@l^@e^@V^@e^@r^@s^@i^@o^@n^@^@^@^@^1.0 (x^@p^@s^@p^@.^@0^@8^@0^@4^@1^@3
^@-^@2^@1^@0^@8^@)^@^@^@^@^@.^@^G^@^A^@I^@n^@t^@e^@r^@n^@a^@l^@N^@a^@m^@e
我们可以看到1.0。但是,当您查看Windows中的文件信息时,版本实际上是5.1.2600.5512。本文中的方法适用于大多数文件,但是我遇到了一些我遇到上述问题的实例。有人对此有经验吗?我只能访问标准C。
根据评论中发布的后续文章,是否意味着无法从文件信息块损坏的文件中获取实际文件版本?
我还应该补充一点,我从windows框中抓取文件,然后在linux上用C程序检查它们以获取文件信息。
答案 0 :(得分:0)
事实证明,该文件被用于获取版本的错误信息,实际上并不需要文件版块,而是“VS_VERSION_INFO”块。