__declspec(dllexport)与__declspec(dllimport) 的区别

`__declspec(dllexport)` 和 `__declspec(dllimport)` 是用于在 Windows 平台上定义导出和导入函数或变量的关键字。它们的作用如下:

  1. `__declspec(dllexport)`: 当您在定义一个函数或变量时使用`__declspec(dllexport)`关键字时,它告诉编译器将该函数或变量导出到生成的 DLL 中,以便其他程序可以使用它。这意味着该函数或变量将在 DLL 中可用,并且可以被其他程序使用。

```cpp

__declspec(dllexport) void MyFunction(); // 导出函数

__declspec(dllexport) int myGlobalVariable; // 导出变量

```

  1. `__declspec(dllimport)`: 当您在使用一个已经存在于 DLL 中的函数或变量时使用`__declspec(dllimport)`关键字时,它告诉编译器该函数或变量是从另一个 DLL 中导入的,而不是在当前的代码文件中定义的。这样,编译器知道它需要在运行时从 DLL 中加载该函数或变量。

```cpp

__declspec(dllimport) void MyFunction(); // 导入函数

__declspec(dllimport) int myGlobalVariable; // 导入变量

```

在使用这些关键字时,通常会在导出函数或变量的头文件中使用`__declspec(dllexport)`,而在导入函数或变量的头文件中使用`__declspec(dllimport)`。这样,当您编译 DLL 时,函数和变量将被导出;而在使用 DLL 的应用程序中,编译器将知道它们需要从 DLL 中导入。

总之,`__declspec(dllexport)` 用于将函数或变量导出到 DLL 中,而 `__declspec(dllimport)` 用于在应用程序中将函数或变量从 DLL 中导入。

相关推荐
道剑剑非道4 小时前
QT开发技术 【opencv图片裁剪,平均哈希相似度判断,以及获取游戏窗口图片】
qt·opencv·哈希算法
年轮不改4 小时前
ARM Linux平台下 OpenCV Camera 实验
linux·arm开发·qt
Pan_peter4 小时前
零基础学QT、C++(五)QT编译、导入OpenCV
开发语言·c++·qt
道剑剑非道4 小时前
QT开发技术 [opencv加载onnx模型,dnn推理]
qt·opencv·dnn
软件开发技术局11 小时前
撕碎QT面具(8):对控件采用自动增加函数(转到槽)的方式,发现函数不能被调用的解决方案
开发语言·qt
OopspoO12 小时前
QT事件循环
qt·事件循环
MessiGo13 小时前
OpenGL(2)基于Qt做OpenGL开发
qt
SummerGao.17 小时前
Windows 快速搭建C++开发环境,安装C++、CMake、QT、Visual Studio、Setup Factory
c++·windows·qt·cmake·visual studio·setup factory
天线枫枫21 小时前
QT- HTTP + JSON(还需完善)
c++·qt·http
fyzy1 天前
QPainter绘制3D 饼状图
qt·3d