适合阅读:编程新手 平台: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就可以不用手动改了。
|