c++动态库导出类方法:
方法一:利用_declspec(dllexport) 这种简单导出类的方式,除了导出的东西太多,使用者对类的实现依赖太多之外,还有必须保证使用同一种编译器。 导出类的本质是导出类里面的函数,因为语法上直接导出了类,没有对函数的调用方式和重命名进行设置,导致了dll并不通用。 //导出C++类 class _declspec(dllexport) Stu { public: Stu(int id); void print(); private: int id; }; #include "stdafx.h" #include <iostream> using namespace std; #include "009.h" Stu::Stu(int id) { this->id=id; } void Stu::print() { cout<<"id="<<id<<endl<<endl; } #include <iostream> #include "../009/009.h" #pragma comment(lib,"../Debug/009.lib") int main() { Stu s(123); s.print(); return 0; } 方法二:较好的方式 定义一个抽象类(都是纯虚函数),调用者跟dll共用一个抽象类的头文件。DLL实现此抽象类的派生类