2010-05-05 9 views
1

이 문서 (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 상자에서 파일을 가져 오는 중이고 파일 정보를 얻기 위해 C 프로그램과 함께 Linux에서 검사해야한다고 덧붙여 야합니다.

+0

하위 기사의 정보를 고려 했습니까? http://blogs.msdn.com/oldnewthing/archive/2006/12/22/1348663.aspx에서 첫 번째 기사의 마지막 부분까지 언급 했습니까? –

+0

나는 그것을 놓쳤다. 내가 그것을 할 수있는 것을 볼 것이다. – user318747

답변

0

정보를 잘못 입력하면 파일 버전 블록을 필요로하지 않고 "VS_VERSION_INFO"블록이 필요합니다.