DLL和测试DLL工程联调的步骤小结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_25923849/article/details/57405010

适合阅读:编程新手
平台:VS2013
场景:需要编写动态链接库并调试此DLL
工程:DLL工程,TestDLL工程
遇到的麻烦:在单独的工程下,也就是两个VS同时开着调试,每次都要从DLL文件的DEBUG目录下把生成好的LIB和DLL文件拷贝到TestDLL工程目录下,很是麻烦,寻求解决。
步骤:
(1)新建DLL工程。
(2)新建TestDLL工程。
(3)在TestDLL工程的解决方案下右键-添加-现有项目,找到DLL工程的工程文件然后添加。(说明:此时只是方便联调,并没有发生文件的挪动。)
(4)在TestDLL工程中包含DLL的h头文件和链接lib文件
不同拷贝直接用相对路径即可,类似下面的代码

#include "DLLInterface.h"//DLL头文件的相对或绝对路径
#ifdef _DEBUG
    #pragma comment(lib,"../debug/DLL.lib")
#else
    #pragma comment(lib,"../Release/DLL.lib")
#endif

(5)调试时工程名右键-设为启动项目即可单独调试DLL和测试程序。

遇到的问题:
(1)DLL工程没生成LIB文件,傻瓜原因:cpp 中忘记包含 h 文件,因为是单独添加的可能会忘记。
(2)测试程序报错找不到LIB文件,注意联调时(1个VS)所有LIB,DLL都在DEBUG目录下生成,注意上文步 骤(4)中相对路径的定位,在分开调试的情况下(2个VS),LIB和DLL是在DLL工程自己的DEBUG下的,注意别搞混。
(3)DLL代码头简单示例备忘,可编入VS助手的快捷键中。

dll.h
#ifdef MY_DLL
#else 
#define MY_DLL _declspec(dllimport)
#endif 

MY_DLL void Func();//导出函数
dll.cpp
#define MY_DLL _declspec(dllexport)
#include "DLL.h"
#include "any library needed"

void Func()
{
    //implementation
    return; 
}

后续遇到的问题添加:
在DEBUG下和Release下添加一个宏来依赖不同的Lib就可以不用手动改了。

猜你喜欢

转载自blog.csdn.net/sinat_25923849/article/details/57405010
dll