2010-05-05 85 views
1

在本文後面的文章(http://blogs.msdn.com/oldnewthing/archive/2006/12/21/1340571.aspx)中,我們已經成功地從Windows文件中獲取文件版本信息,但是有些文件似乎有不同的機制來存儲版本信息沒有在文章中解決,並想知道是否有人在這裏有任何想法。抓取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窗口抓取文件,然後用C程序在Linux上檢查它們以獲取文件信息。

+0

您是否考慮過在第一篇文章末尾提到的次要文章http://blogs.msdn.com/oldnewthing/archive/2006/12/22/1348663.aspx中的信息? – 2010-05-05 14:33:01

+0

我錯過了,謝謝我會看到我能用它做什麼。 – user318747 2010-05-05 14:48:57

回答

0

IT結果是錯誤信息是用於獲取版本的文件,實際上並不需要文件版本塊,而是「VS_VERSION_INFO」塊。