1.将动态库与调用动态库的主程序放在同一解决方案下
2.动态库程序需要设置成调试模式
拷贝动态库所有文件,主要一定要包括.pdb和.dll文件到主程序执行文件的同一目录,也就是.exe路径下
注意:源文件和.pdb .dll 必须是同一个版本
4.动态库调试
1)在动态库中打断点,F9
2)运行主程序,并进行调试F5,就可以进行动态库调试,F10(逐过程),F11(逐语句)
5.动态链接库(Dynamic Link Library)总结
1)基本原理是lib文件中包扩了某一段程序(函数)的入口或者说是地址,而真正机器码是在dll文件中,IDE链接的时候将.lib文件(程序地址)链接到源代码中,程序运行时到相应位置(环境变量path,当前目录等)寻找dll文件并执行其中的机器码。
所以这种引用方式一般需要的文件一般有三个:.h,.lib,.dll,生成的源程序也会比较小,因为他只保存了函数地址,但是这种方式总是会出现找不到xxx.dll这种问题。
2)IED可以调试源码,那么就需要.pdb文件了,pdb文件中保存了dll的符号表,所谓符号表可以理解为机器码(这里是dll中的)中插入的key与源代码文件的映射,这样只要指定源码存放的路径,IDE就会自动去找源码。
需要注意的是,pdb文件和dll文件是配套的,也就是说一旦dll文件有改动(比如说重新生成)pdb文件就必须做相应改变。pdb文件也比较大,程序运行时也会因为要完成映射而比较慢,这也是release版与debug的区别
3)在 Windows 系统中,符号文件(Symbol Files)以 .pdb 为扩展名,是一个数据信息文件,它包含了应用程序二进制文件(比如:EXE、DLL等)调试信息,专门用来作调试之用,最终生成的可执行文件在运行时并不需要这个符号文件,但你的程序中所有的变量信息都记录在这个文件中。 调试应用程序时,这个文件是非常重要的。用 Visual C++ 和 WinDbg 调试程序时都要用到这个文件。
网友评论