Visual Studio 2013下调试dll的问题

最近在用别人的一套代码,C#测试工程里面调用C++代码写的DLL 文件,一开始想在运行中进入调试状态,可以一步一步走到DLL源代码中查看中间变量的内容,但是并不能进去,可以看到打的断点是空心的,类似这个样子:
这里写图片描述

这里表明这个dll的符号文件没有load进来,符号文件也就是.pbd文件,然后去查看一下调用dll的部分,是这样的形式:
这里写图片描述

根据http://blog.csdn.net/zhoucaifu/article/details/5416892 中的讲解,用这个DLLImport的时候的查找DLL的路径的过程是:
1、exe所在目录
2、System32目录
3、环境变量目录

所以我去查看了一下exe所在目录下是有DLL文件的,但是没有pdb文件,然后在另一个目录下找到pbd文件,这时候可以通过点击VS上的BEBUG->Windows->Modules->找到对应的DLL,会看到这个时候的Symbol Status是找不到符号文件,可以右键->Load Symbols,然后找到pbd文件的路径load进去就好啦,这时候断点的空心就会变成实心了,就可以进去调试啦。
但是这里要注意的是pdb文件和dll文件必须是匹配的,可以看一下两个文件的生成时间是不是一样的,如果不匹配的话load的时候也会报错~

你可能感兴趣的:(C++/C#)