__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{};

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

相关推荐
handler0130 分钟前
从零实现自动化构建:Linux Makefile 完全指南
linux·c++·笔记·学习·自动化
我头发多我先学2 小时前
C++ 模板全解:从泛型编程初阶到特化、分离编译进阶
java·开发语言·c++
星星码️3 小时前
C++选择题练习(一)
开发语言·c++
小苗卷不动5 小时前
OJ练习之疯狂的自我检索者(简单)
c++
LUVK_5 小时前
第七章查找
数据结构·c++·考研·算法·408
迷途之人不知返5 小时前
vector
c++
khalil10205 小时前
代码随想录算法训练营Day-31贪心算法 | 56. 合并区间、738. 单调递增的数字、968. 监控二叉树
数据结构·c++·算法·leetcode·贪心算法·二叉树·递归
小苗卷不动5 小时前
进程与线程的核心区别
c++
啊我不会诶6 小时前
2024ICPC西安邀请赛补题
c++·算法
ZenosDoron6 小时前
keil软件修改字体,Asm editor,和C/C++ editor的区别
c语言·开发语言·c++