利用VS2010工具,调试DLL文件的方法现总结如下:
在一个解决方案中生成两个工程,假设MYDLL和MYDLG两个工程,前者是DLL工程,后者DLG调用前边的DLL工程。设置如下:
目录如下:图,本文例子中,DLL文件和EXE文件都生成在下边的这个DEBUG文件中:D:\My Documents\Visual Studio 2010\Projects\MYDLL\Debug,当然,也可以生成在其他文件目录下,只要设置正确即可。
目的:遵循DLL和exe最后生成的文件在一个目录内,且两个工程之间有种关联,使EXE工程能够调用DLL工程。
首先编译DLL工程。
接着,进行下边的设置。
一、MYDLG工程设置
1.MYDLG工程采用调用静态MFC
2.输出目录要和将要生成的DLL文件在一个目录下,如设为D:\My Documents\Visual Studio 2010\Projects\MYDLL\Debug
3 .采用静态调用DLL的方式调用我自己生成的lib文件 (很关键),如果采用动态调用,就需要用loadlibrary函数,并为每个导出的函数重新命名。
添加库目录或者添加到附加库目录中,两者原则上都可以,首选修改附加库目录
添加到库目录如下图,目录为D:\My Documents\Visual Studio 2010\Projects\MYDLL\Debug
添加到附加库目录中,如下图
这样,DLG工程就和DLL工程之间建立了关联。 接下来,再来设置DLL工程。。。。。。
二、MYDLL工程里面设置:
1、MYDLL工程采用静态链接库,
2、输出目录采用默认目录如D:\My Documents\Visual Studio 2010\Projects\MYDLL\Debug
3、设置本地Wiindows调试器中命令参数为DLG工程上边生成的exe文件路径,如D:\My Documents\Visual Studio 2010\Projects\MYDLL\Debug(关键)。
(题外话:如果已经有一个写好的EXE,可以把已经存在的exe随便放在一个路径下,然后在此处的命令参数中设置好exe的路径,之后就可以启动dll,单步调试dll了)
这样DLL就和DLG工程间建立了关联。
之后,就可以再DLG工程中调用DLL工程中的接口函数了。