首先 ,dll 是以MFC的方式生成的,并且为了在调试dll时方便,我把dll和测试程序(一个控制台类型,一个MFC类型)都建在了一个工程下,这样可以在修改dll时通过下面的步骤设置生成dll的输出目录(比较方便)。
下面是我的dll工程的输出目录的配置,你可以输出dll到你的测试程序目录下
使用dll的方法有两种,可以动态链接,这里使用的是静态链接 。
静态链接时我们的测试程序的可执行文件和dll文件还有.lib文件都要在一起,前面的设置dll文件已经指定好了,下面就是.lib文件,所以这里进行一下设置,来满足这个要求。
(这里还是设置的dll的文件配置如下):
在生成动态库时要注意有几个问题(我遇到的。。)
如调用约定的问题,如果你的测试程序和动态库的调用约定不一致,可能导致调用时的未定义引用的错误。所以这里可以进行设置:
如果还有什么问题的话,你可以设置一下调试类型。
如果是托管代码调用你的DLL,比如一个C#应用程序调用DLL,那么你就选Managed Only,如果是一个本地代码掉用你的DLL,比如C++应用程序,那么就选Native Only。Mixed包含了这两类,如下:
然后就是你的测试程序的测试了,调试前先添加一下依赖项。如下(注意下面都是测试程序的设置):
然后你最好注意一下你的测试程序的生成的可执行文件的目录,因为dll .lib exe在放在一起。
最后在你的测试程序代码里添加库预处理指令,还有一点非常重要就是你的dll的头文件一定要添加到的测试程序中。
最后在同一个项目下的你的dll的源码里打上断点,你的测试程序执行起来,就可以进入你的dll源码了(我的MFC程序和控制台测试程序都可以顺利进入断点)。