要在C++中导出一个类作为DLL,需要使用__declspec(dllexport)
修饰类声明。下面是一个示例:
// MyDll.h
#ifdef MYDLL_EXPORTS
#define MYDLL_API __declspec(dllexport)
#else
#define MYDLL_API __declspec(dllimport)
#endif
class MYDLL_API MyClass
{
public:
void foo();
};
然后,在实现文件中需要定义MYDLL_EXPORTS
宏,以便在编译时正确导出类:
// MyDll.cpp
#define MYDLL_EXPORTS
#include "MyDll.h"
void MyClass::foo()
{
// 实现类的方法
}
导出类后,可以在其他项目中使用该DLL。需要注意的是,导出类的成员函数必须是虚函数,以便正确处理类的内存和虚函数表。