集成指南
一、预置Bonree SDK环境
解压从bonree平台上下载的win SDK文件,包含8个产出文件:
- 动态链接库即DLL文件
- 导出符号表即LIB文件
- 函数声明头文件
- 其他前置hook头文件
将解压文件放置到工程依赖的第三方库目录中,并配置依赖库目录(项目属性->配置属性->链接器->常规->附加库目录),确保链接的时候可以找到。
二、配置工程
静态添加
在项目中附加依赖的lib文件,选择项目属性->配置属性->链接器->输入->附加依赖项:输入BonreeSDK.lib
动态添加
代码添加依赖文件
#include "BonreeSDK.h"
#pragma comment(lib,"BonreeSDK.lib")
接入
一、前置声明Hook
由于静态库函数和部分库的关键函数没有导出,需要一个前置的头文件来获取相关函数地址。
- 在任意cpp文件中引入一个头文件(需要注意下windows头文件引用冲突)。
- 修改下相关函数声明的头文件路径。
请根据情况按需引用。
DuiLib
若使用的是DuiLib
的静态库
,则需要在工程中使用了duilib库的模块cpp文件引用
#include "bonree_sdk_duilib_hook.hpp"
头文件。
并修改
#include "DuiLib/UIlib.h"
头文件路径,将自身模块的UIlib.h的头文件路径包含在hpp文件里。
CURL
若使用的是CURL
库,则需要在工程中使用了libcurl库的模块cpp文件引用
#include "bonree_sdk_libcurl_hook.hpp"
头文件。
并修改
#include "curl/inc/curl.h"
头文件路径,将自身模块的curl.h的路径包含在hpp文件里。
MFC
若使用的是MFC
库,则需要在工程中任意cpp文件引用
#include "bonree_sdk_mfc_hook.hpp"
头文件。
可能需要修改
#include <afxwin.h>
头文件路径。
QT
若使用的是qt库,则需要在工程中使用了qt库的模块cpp文件引用
#include "bonree_sdk_qt_hook.hpp"
头文件。
二、 启动与关闭
为保证数据的全方位捕获,需要在程序执行之初调用初始化接口 StartWithAppID 完成对SDK各个功能的初始化操作;
应用程序退出前需要调用注销接口 StopSDK 完成对SDK各个功能模块关闭、内存清理等操作。
示例如下:
#include <windows.h>
#include "BonreeSDK.h"
void main(void) {
/*初始化SDK,需要注意的是在初始化时,必须传入平台创建应用的APPID。
*此处参数"d3cf38d8-9cea-4db5-9712-14fe55038ae5"为示例APPID
*/
std::wstring appid = L"d3cf38d8-9cea-4db5-9712-14fe55038ae5";
bool ret = bonree_sdk::StartWithAppID(appid.c_str());
if (!ret) {
//初始化SDK失败
}
/*do somthing*/
//注销SDK
bonree_sdk::StopSDK();
return;
}