调试dll的方法:
方法一:如果有调用dll工程的代码:从调用dll的那个工程开始调试:
打开Debug-->windows-->modules,查看是如何调用的,然后看一下调用的dll的目录是否为你现在的工程目录!!
dll调用是有一个顺序的,如果先调用的是c:/window/ 里面的 ,可以把c:/window/ 路径下的dll删除。此时在dll代码内设置断点然后调试。
附录:dll的调用顺序
关于用LoadLibrary 搜索dll路径的问题
在默认情况下,Windows 加载程序在用户磁盘上搜索 DLL 的搜索顺序:
- 包含可执行文件的目录。
- Windows 的系统目录,该目录可以通过 GetSystemDirectory 得到,一般为 System32 目录,若为 32 位程序跑在 64 位系统下,则为 SysWOW64 目录。
- 16 位的系统目录,即 Windows 目录中的 System 目录。
- Windows 目录,该目录可以通过 GetWindowsDirectory 得到。
- 进程的当前目录。
- PATH 环境变量中所列出的目录。
如果调用 LoadLibrary 时传入的是绝对路径,那么加载程序将只尝试从该绝对路径搜索 DLL。
方法二:如果没有调用dll工程的源代码,那么如下设置之后,运行dll的工程
https://blog.youkuaiyun.com/qianghaohao/article/details/50190905