写一个使用dllimport和export生成动态库,并在另一个源文件中使用的例子
时间: 2024-03-03 10:47:42 浏览: 93
一个关于建立动态库的实例及其如何利用DLL的文档及其实例
以下是一个使用dllimport和export生成动态库,并在另一个源文件中使用的例子:
首先,创建一个名为"mylib"的动态库项目,其中包含以下两个文件:
mylib.h
```c++
#ifdef MYLIB_EXPORTS
#define MYLIB_API __declspec(dllexport)
#else
#define MYLIB_API __declspec(dllimport)
#endif
MYLIB_API int add(int a, int b);
```
mylib.cpp
```c++
#include "mylib.h"
int add(int a, int b) {
return a + b;
}
```
在mylib.h中,使用了MYLIB_API宏来定义函数的导出方式。如果是在编译动态库时,需要定义MYLIB_EXPORTS宏,以便导出函数;如果是在使用动态库时,需要定义MYLIB_API为dllimport,以便导入函数。
在mylib.cpp中,实现了一个简单的加法函数。
然后,创建一个名为"myapp"的控制台应用程序项目,其中包含以下两个文件:
main.cpp
```c++
#include <iostream>
#include "mylib.h"
int main() {
int a = 1, b = 2;
std::cout << "a + b = " << add(a, b) << std::endl;
return 0;
}
```
在main.cpp中,包含了mylib.h头文件,并调用了add函数。
在Visual Studio中,需要将mylib项目设置为myapp项目的依赖项,并将mylib.dll复制到myapp.exe所在的目录中。
最后,编译并运行myapp项目,即可看到输出结果"a + b = 3"。
阅读全文