c++生成DLL并调用

1.创建项目

1.1新建项目
在这里插入图片描述
1.2.点击下一步之后,按下图操作
在这里插入图片描述

2. 导出类设计

①导出类头文件开始处加入以下代码

#define __DLL_H__
#define __DLL_EXPORTS__
#ifdef __DLL_EXPORTS__
#define DLLAPI  __declspec(dllexport)
#else
#define DLLAPI __declspec(dllimport)
#endif

②导出类前要加关键字 DLLAPI
③ 将要提供给用户的接口写在导出类中即可

在这里插入图片描述

④编译时候项目目录Debug文件夹下就会生成dll文件
在这里插入图片描述

3. dll文件的使用

①将导出类的头文件、dll、lib放入应用项目目录下
在这里插入图片描述
②将导出类的头文件包括在应用项目下
③链接库
在这里插入图片描述
注意:
除了在项目中动态链接库,还可以在项目配置中“链接器-输入”中输入lib
在这里插入图片描述
运行结果:
在这里插入图片描述

4. 实际开发中遇到的问题

类A作为导出类,类B作为实现类,需要在导出类中提供对类B的接口

错误做法: 在类A头文件中#include “B.h”, A拿去被用时,会报找不到B.h,但是并不希望类B被用户操作

解决办法:
①在类A声明之前声明类B:
在这里插入图片描述
②在A,cpp中包括B的头文件
在这里插入图片描述
Tips: dll是打包了类的cpp文件

5. 开发过程中,如何避免一旦修改dll要重新复制相关文件到应用项目的麻烦

  1. 将dll项目拷贝到应用项目下
    在这里插入图片描述
    2.将dll项目添加到解决方案中

在这里插入图片描述

3.添加库目录路径
DLL生成路径
应用程序生成路径

  • 以上两个输出目录是一样的

修改应用程序库目录
4. 动态链接库 及 头文件添加
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值