__declspec关键字:导入 导出

一、declspec 是 Declaration Specification 可以简单理解为 声明规范

  1. __declspec(dllimport)意思是被修饰函数要从其他dll中导入

  2. __declspec(dllexport)意思是被修饰函数是要导出

二、举例说明

定义一个Export.h,文件中代码如下:

复制代码
#ifdef APPDLL_EXPORT
#define APPDLL_API __declspec(dllexport)
#else
#define APPDLL_API __declspec(dllimport)
#endif

代码意思是:

1.如果定义了APPDLL_EXPORT,那么执行if语句,执行导出dll(从当前项目导出到DLL):

#define FTAPPDLL_API __declspec(dllexport)

2.如果没有定义APPDLL_EXPORT,那么执行else语句,执行导入(从DLL导入到项目):

#define APPDLL_API __declspec(dllimport)

3.查看(文件中 或者 项目属性--C/C++--预处理--预处理定义)中,是否define定义了APPDLL_EXPORT,从而确定执行哪条语句

4.其他文件可以包含Export.h,从而进行导入导出。在需要导入/导出的(类名前、class后):添加APPDLL_API即可。

如:class FTAPPDLL_API Car{};

这个类就是要进行导入/导入的类。类中的函数正常写,不受此影响。

相关推荐
青瓦梦滋1 小时前
WebSocket协议
linux·服务器·网络·c++·websocket·网络协议·http
CodeYp20197 小时前
第15讲:二叉搜索树
开发语言·c++·二叉搜索树
pipixia200337 小时前
C++继承面试四连问:内存叠加、私有继承、sizeof、权限重映射
c++·面试·嵌入式·继承·面向对象·对象模型
牵猫散步的鱼儿10 小时前
C++ 内存分区
c++
choumin10 小时前
C++ 标准容器为什么不能存引用
c++·容器·引用类型
谙弆悕博士10 小时前
用 C 写了个 Windows 聊天室,踩了几个多线程和控制台的坑
c语言·开发语言·c++·windows·网络编程·聊天室
stolentime11 小时前
CF2277E Tree Guessing题解
c++·算法·贪心算法·交互·ad-hoc
syagain_zsx12 小时前
ODB 与 MySQL:C++ 里的 ORM 实践(类即表、事务铁律与查询封装)
开发语言·数据库·c++·mysql·工具库·1024程序员节
小鱼仙官12 小时前
使用Qt封装C/C++ 动态库 用于第三方调用
c语言·c++·qt
晚风予卿云月13 小时前
【C++高并发内存池】 1.定长内存池的实现
开发语言·c++·内存管理