C++在使用第三方SDK开发时, 经常会看到callback、handler的用法,实现sdk的某个接口类,获取相关操作的通知,可以同步,也可以异步,下面将将介绍这种方式的实现。
一、 用vs2019创建dll项目
例如下面是一个音视频会议的sdk, 包含创建引擎、加入房间,离开房间,销毁引擎等接口
接口层:
- EngineInterface :纯虚类,具体实现在EngineImpl
- EngineEventHandlerInterface :虚基类,该类需要用户来派生实现,用于接收EngineImpl的相关通知,在创建sdk实例时,需要传入用该类进行初始化。EngineEventHandlerInterface 无需在sdk里实现,声明即可。
实现层:
- EngineImpl,该类派生于EngineInterface,实现具体功能,同时给接口EngineEventHandlerInterface发送信息,如果用户实现了EngineEventHandlerInterface将会收到sdk相关功能的执行结果。
- createEngine(), 创建sdk示例
具体代码
EngineInterface.h
#pragma once
#include "sdkbase.h"
#include "EngineEventHandlerInterface.h"
class MEETINGSDK_API EngineInterface {
public:
EngineInterfac
|