c++ 动态链接库接口类动态链接库开发及使用
我创建了一个接口类生成动态链接库,然后静态调用,使用的是lib
实现方法是:
先创建了一个接口类(纯虚类)
//Interface.h
class __declspec(dllexport) Interface
{
virtual void SetParam( const short a, const short b, const short c ) = 0;
protected:
short aa;
short bb;
short cc;
}
DLLIMPORT Interface* MakeClassPtr();
然后创建了一个继承到接口类的来实现其功能
//InterfaceReal.h
#include "Interface.h"
class InterfaceReal:public Interface
{
public:
void SetParam( const short a, const short b, const short c) override;
}
//InterfaceReal.cpp
void InterfaceReal::SetParam( const short a, const short b, const short b )
{
aa= a;
bb= b;
cc = c;
}
extern "C" __declspec(dllexport) Interface* MakeClassPtr()
{
return new InterfaceReal();
}
生成lib和dll
使用是将lib和dll加到test工程中,然后将Interface.h也加入Test工程中,使用下面代码
Interface *xx= MakeClassPtr();
xx->SetParam(1,1,15);
但是实际上1,1,15并没有赋值给aa bb cc