有没有办法检查使用哪个版本的Visual C ++来构建给定的.exe?
我知道如果.exe使用动态链接与CRT很容易:我可以使用Dependency Walker并读取MSVCRxx.DLL版本,例如:对MSVCR90.DLL的依赖意味着.exe是使用Visual C ++ 2008构建的,即VC9;但是与CRT静态链接的情况呢?
答案 0 :(得分:0)
可能检查Depends.exe中的链接器版本,几乎与VisualC ++版本相同。
在Dependency Walker的下方视图中,选择 Linker Ver 列。
答案 1 :(得分:0)
我在Matt Pietrek的MSDN上发现了这篇有趣的文章:
Inside Windows: An In-Depth Look into the Win32 Portable Executable File Format
感兴趣的字段为IMAGE_OPTIONAL_HEADER32/64::MajorLinkerVersion
和MinorLinkerVersion
。它们几乎与Visual C ++版本相同(例如“10”和VC10的“0”)。
(我认为这些是Dependency Walker在其用户界面中用于 Linker Ver 列的字段。)