第一步:创建接口类
1.接口类 .h 文件
#ifndef ISmoke_h
#define ISmoke_h
/*
* ISmoke是一个提供给用户调用的头文件
* 对应的库文件为:SmokeDll.dll SmokeDll.lib
*/
class ISmoke
{
public:
ISmoke() {};
virtual ~ISmoke() {};
public:
virtual void sayHello() = 0;
};
//放回实际被调类的指针
ISmoke* __cdecl getSmoke();
//析构实际被调类(getSmoke返回的ISmoke*)
void __cdecl destroySmoke(ISmoke* p);
#endif // !ISmoke_h
2.接口类 .cpp 文件
#include "pch.h"
#include "ISmoke.h"
#include "Smoke.h"
/*
*接口类仅仅实现需要到处的全局函数,目的是用于间接调用实际实现类的方法
*一般仅仅包含一个导出指针函数和一个析构指针函数
*/
ISmoke* __cdecl getSmoke() {
ISmoke* p = new Smoke;
return p;
}
void __cdecl destroySmoke(ISmoke* p) {
if (p)
{
delete p;
}
return;
}
第二步:创建实际被调用的实现类
#ifndef Smoke_h
#define Smoke_h
#include "ISmoke.h"
class Smoke:public ISmoke
{
public:
Smoke() {};
vir