查找LIB的加载DLL

时间:2012-08-29 20:52:59

标签: c++ c visual-studio

在VS 2005中,我可以通过在IDE中显式设置选项来查看libs链接器的路径。如何找到加载相应dll的位置?

1>Searching libraries
1>    Searching C:\Program Files (x86)\Microsoft Visual Studio 8\VC\lib\msvcrtd.lib:
1>      Found _memcpy
1>        Referenced in deflate.obj
1>        Referenced in gzio.obj
1>        Referenced in infback.obj
1>        Referenced in inflate.obj
1>        Loaded msvcrtd.lib(MSVCR80D.dll)

在上述情况中,MSVCR80D.dll来自哪里?我在 VC 目录中搜索了 dll ,并弹出了10多个结果。有没有简单的方法可以找到哪一个是完全加载的?

1 个答案:

答案 0 :(得分:3)

DLL实际上是在运行时加载的,而不是在链接时加载的。实际上,本机DLL甚至不必存在于机器中以进行链接。

您可以在调试器(通常是F5)中看到运行程序的信息,并从“Debug”子菜单IIRC打开“模块窗口”。

此外,您可以分析可执行文件并尝试推断将加载哪个DLL。毫无疑问,最好的工具是Dependency Walker。它也可以分析DLL(很酷),但它可能会遇到托管DLL的麻烦。