如果包含路径,则dumpbin实用程序会给出不同的结果

问题描述:

在安装了Visual Studiop 2013的Windows 10/64位框中调查DLL的位宽。如果包含路径,则dumpbin实用程序会给出不同的结果

dumpbin /headers C:\windows\system32\msvcp120.dll | findstr machine 

报告:8664机(64)

cd C:\windows\system32\ 
dumpbin /headers .\msvcp120.dll | findstr machine 

报道: 14C机(x86)的32位字机

我已经试过了几台机器结果相同。这是怎么回事 ?

+0

感谢汉斯 - 这很有道理。我想我使用32位版本的dumpbin,因为我使用“x86本地工具命令提示符”来运行这些命令。如果我明确地使用64位版本(“C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ VC \ bin \ amd64 \ dumpbin.exe”),它会正确报告64位的\ windows \ system32 one和32位对于\ windows \ syswon64而言,无论我从哪里运行它。 – speedwell

这是在工作中的文件系统重定向器,当您查看c:\ windows \ system32目录时,它始终在64位操作系统上处于活动状态。你是其实看着c:\ windows \ syswow64 \ msvcp120.dll,因此机器类型是x86。主要由运行32位版本的dumpbin.exe引起,就像大多数用户一样。只有64位版本(vc/bin/amd64目录)不会被重定向。

我感到困惑了一下,发现了之前我不知道的重定向器的一个方面。它重定向只有相对路径。所以。\ msvcp120.dll或.. \ system32 \ msvcp120.dll。但是不是的完整路径,如c:\ windows \ system32 \ msvcp120.dll。驱动器盘符实际上并不重要。