要使用export关键字来编写动态库,首先需要编写一个包含导出函数的源文件。在函数声明前使用__declspec(dllexport)
修饰符,以便告诉编译器这个函数需要被导出。
例如,以下是一个简单的动态库示例:
// mylibrary.h
#ifndef MYLIBRARY_H
#define MYLIBRARY_H
#ifdef MYLIBRARY_EXPORTS
#define MYLIBRARY_API __declspec(dllexport)
#else
#define MYLIBRARY_API __declspec(dllimport)
#endif
// 导出函数声明
extern "C" MYLIBRARY_API int add(int a, int b);
#endif
// mylibrary.cpp
#include "mylibrary.h"
// 导出函数定义
extern "C" int add(int a, int b)
{
return a + b;
}
在编译动态库时,需要定义MYLIBRARY_EXPORTS
宏来告诉编译器这是一个动态库。在使用该动态库的应用程序中,只需包含mylibrary.h
头文件,并链接相应的动态库文件即可。
请注意,不同的编译器可能有不同的关键字或宏来实现动态库的导出和导入,以上示例是针对Windows平台上的Visual Studio编译器的写法。在其他平台上可能需要使用不同的方法来实现动态库的导出和导入。