分享

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

 行走在理想边缘 2017-12-28

适合阅读:编程新手
平台: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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

(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();//导出函数
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
dll.cpp#define MY_DLL _declspec(dllexport)#include 'DLL.h'#include 'any library needed'void Func(){ //implementation return; }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多