dllexport和dllimport在c plus plus 中是什么意思,用法举例
时间: 2024-01-07 15:04:03 浏览: 73
__declspec(dllexport)和__declspec(dllimport)的区别是什么
5星 · 资源好评率100%
在 C++ 中,`dllexport` 和 `dllimport` 是用于指定动态链接库(DLL)中的函数或变量的导出和导入的关键字。
`dllexport` 用于在 DLL 中声明一个函数或变量,并将其标记为导出,以便其他程序可以使用它。它的使用方法如下:
```
__declspec(dllexport) void foo(); // 导出函数 foo
__declspec(dllexport) int bar = 42; // 导出变量 bar
```
`dllimport` 用于在程序中声明一个函数或变量,并将其标记为从 DLL 中导入,以便程序可以使用它。它的使用方法如下:
```
__declspec(dllimport) void foo(); // 从 DLL 导入函数 foo
__declspec(dllimport) extern int bar; // 从 DLL 导入变量 bar
```
举例来说,假设我们有一个 DLL 文件 mylib.dll,其中包含一个名为 `add` 的函数和一个名为 `value` 的变量。我们可以在 DLL 中使用 `dllexport` 导出它们:
```
// mylib.h
#ifdef MYLIB_EXPORTS
#define MYLIB_API __declspec(dllexport)
#else
#define MYLIB_API __declspec(dllimport)
#endif
MYLIB_API int add(int a, int b); // 导出函数 add
MYLIB_API int value; // 导出变量 value
```
然后,在其他程序中可以使用 `dllimport` 引用这些导出:
```
// main.cpp
#include "mylib.h"
int main() {
int result = add(1, 2); // 调用从 DLL 导入的函数 add
int val = value; // 从 DLL 导入变量 value
return 0;
}
```
阅读全文