VS2017生成DLL并进行引用调试

VS2017生成DLL并进行引用调试

参考资料:http://blog.sciencenet.cn/blog-858128-992020.html

Contents

生成DLL

   首先使用VS新建一个WIN32应用程序,在应用程序向导里选择DLL,附加选项选择空项目。如下图:
在这里插入图片描述
   完成后在项目中添加头文件dll_test.h,里面定义一个宏:

#define EXPORT __declspec(dllexport) /* for Windows DLL */

   放在函数声明的前面,用于表示该函数可被导出,进而被加载了该DLL的程序使用。使用方法:

EXPORT int add(int x, int y);

   完整的dll_test.h如下图:
在这里插入图片描述
   相应的在源文件中添加dll_test.cpp,用于实现头文件中定义的函数,这和普通的cpp没有什么区别,代码如下:
在这里插入图片描述
   最后点击生成,在解决方案文件夹下Debug中会生成对应的.dll和导入库.lib,记得是在解决方案方案下的Debug,而不是项目文件夹下的Debug中。至此,一个DLL和它的lib就全部生成完了。

普通调用DLL

   其他工程调用DLL需要注意三点:
(1)需要包含这个DLL的头文件,在上文中就是包含dll_test.h
   这里需要设置项目属性中VC目录中的包含目录,或者C/C++中附加包含目录。其实就是要在include 文件的搜索路径中设置dll_test.h的路径。
   设置下图中①或②中一项即可,设置为dll_test.h的路径
在这里插入图片描述
在这里插入图片描述
(2)添加DLL的导入库.lib
   这里导入.lib文件作为DLL的链接入口,需要在VC++的库目录中添加.lib的路径,另外在链接器的附加依赖项中输入.lib的名称,当然也可以在代码 添加#pragma comment(lib,“rtklibDLL.lib”) 来替代链接器中输入附加依赖项的输入。
库目录设置
在这里插入图片描述

(3)将DLL与工程的exe放在同一文件夹下

   另外需要注意的是默认的工程依赖VS环境,如果在没有VS环境机器上不能直接运行。解决办法是工程右键-> 属性-> C/C++ ->代码生成->运行库,改为/MT(Release)或者/MTd(Debug)。

引用调试DLL

  • 普通的调用DLL,在进行调试时是无法进入DLL函数内部的。但是我们可以将DLL与调用该DLL的工程建立在相同的解决方案下,并用这个工程引用DLL,同时设置引用属性中使用库依赖项输入为True,进而可以在调试工程时,进入DLL中的函数。具体如下图。
    在这里插入图片描述
    在这里插入图片描述
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值