visual-c++ - 如果我包含路径,dumpbin 实用程序会给出不同的结果

标签 visual-c++ dumpbin

调查安装了 Visual Studiop 2013 的 Windows 10/64 位机器上 DLL 的位宽。

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

报告:8664 机器 (x64)

但是

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

报告: 14C机(x86)32位字机

我在几台机器上尝试过,结果相同。这是怎么回事?

最佳答案

这是工作中的文件系统重定向器,当您查看 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。驱动器号实际上并不重要。

关于visual-c++ - 如果我包含路径,dumpbin 实用程序会给出不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43618944/

相关文章:

c++ - 什么是 "stack alignment"?

代码崩溃编译器 : main() returning a struct instead of an int

c++ - 反汇编二进制文件中的 HIGHLOW 是什么意思?

c++ - Winbio.h No such file or directory 错误

c++ - 无法解析符号 otl_connect(不包括 otl_connect 类)

c++ - 如何在模板类定义中构造自定义类型

c# - 为什么 dumpbin 不显示某些 DLL 的功能?

windows - 为什么 NASM 和 dumpbin.exe 对同一个可执行文件的反汇编输出不同?

c++ - Visual Studio - 可以是从代码调用的断点吗?

windows - 动态编译的exe是什么意思?