Skip to content

Commit 82aae8a

Browse files
author
jeffgaogao
committed
添加集成指南
1 parent 6faf612 commit 82aae8a

7 files changed

+114
-0
lines changed

docs/SDK集成指南.md

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
# 集成 SDK(Windows)
2+
3+
本文介绍如何快速地将腾讯云的 TcrSdk 集成到项目中,只要按照如下步骤进行操作,可以轻松完成 TcrSdk 的集成工作。
4+
## 开发环境要求
5+
6+
- 操作系统:推荐 Windows 10。
7+
- 开发环境:推荐使用 Visual Studio 2019。
8+
9+
## 集成 TcrSdk
10+
11+
下面通过创建一个简单的 MFC 项目,介绍如何在 Visual Studio 2019 工程中集成 SDK。
12+
### 步骤1. 下载 TcrSdk
13+
14+
15+
|目录名 |说明 |
16+
|--|--|
17+
|includes |接口头文件 |
18+
|libs\x86| **32位**,采用 /MT 选项链接库文件 |
19+
|libs\x64| **64位**,采用 /MT 选项链接库文件 |
20+
### 步骤2. 新建工程
21+
22+
打开 Visual Studio,新建一个名为 TcrDemo 的 Windows桌面应用程序
23+
### 步骤3. 拷贝文件
24+
25+
将解压后的 tcrsdk 文件夹拷贝到 TcrDemo.vcxproj 所在目录下,如下图所示:
26+
![enter image description here](/tencent/api/attachments/s3/url?attachmentid=3497143)
27+
### 步骤4. 修改工程配置
28+
29+
TcrSdk 提供了 **x64****x86** 两种编译生成的静态库,针对这两种有些地方要专门配置。打开 TcrDemo 属性页,在**解决方案资源管理器**>**TcrDemo工程的右键菜单**>**属性**
30+
**x64**为例,请按照以下步骤进行配置:
31+
1. 添加包含目录
32+
**C/C++**>**常规**>**附件包含目录**,添加 tcrsdk 头文件目录 $(ProjectDir)tcrsdk\include,如下图所示:
33+
<br><br>
34+
<img src="docs/images/接入SDK添加包含目录.png" width="700px">
35+
<br><br>
36+
2. 添加库目录
37+
**链接器**>**常规**>**附加库目录**,添加 tcrsdk 库目录 $(ProjectDir)tcrsdk\libs\x64
38+
<br><br>
39+
<img src="docs/images/接入SDK添加库目录.png" width="700px">
40+
<br><br>
41+
3. 添加库文件
42+
**链接器**>**输入**>**附加依赖项**,添加 tcrsdk 库文件 TcrSdk-Win.lib ,如下图所示:
43+
<br><br>
44+
<img src="docs/images/接入SDK添加库文件.png" width="700px">
45+
<br><br>
46+
4. 拷贝 DLL 到执行目录
47+
**生成事件**>**生成前事件**>**命令行**,输入 `xcopy /E /Y "$(ProjectDir)tcrsdk\libs\x64" "$(OutDir)"` ,拷贝 TcrSdk-Win.dll 动态库文件到程序生成目录,如下图所示:
48+
<br><br>
49+
<img src="docs/images/接入SDK生成前事件.png" width="700px">
50+
<br><br>
51+
5. 更改代码生成方式
52+
**代码生成**>**运行库**,改为“多线程/MT”
53+
<br><br>
54+
<img src="docs/images/接入SDK更改代码生成.png" width="700px">
55+
<br><br>
56+
6. 运行,创建TcrSession
57+
58+
* 添加头文件
59+
```
60+
#include "tcr_session.h"
61+
```
62+
* 实现TcrSession::Observer
63+
```
64+
class TcrObserver : public tcrsdk::TcrSession::Observer {
65+
void onEvent(tcrsdk::TcrSession::Event event, const char* eventData)
66+
{
67+
switch (event)
68+
{
69+
case tcrsdk::TcrSession::STATE_INITED:
70+
//do something
71+
break;
72+
case tcrsdk::TcrSession::STATE_CONNECTED:
73+
//do something
74+
break;
75+
case tcrsdk::TcrSession::STATE_CLOSED:
76+
//do something
77+
break;
78+
case tcrsdk::TcrSession::CLIENT_STATS:
79+
//do something
80+
break;
81+
case tcrsdk::TcrSession::GAME_START_COMPLETE:
82+
//do something
83+
break;
84+
case tcrsdk::TcrSession::ARCHIVE_LOAD_STATUS:
85+
//do something
86+
break;
87+
case tcrsdk::TcrSession::ARCHIVE_SAVE_STATUS:
88+
//do something
89+
break;
90+
case tcrsdk::TcrSession::INPUT_STATUS_CHANGED:
91+
//do something
92+
break;
93+
case tcrsdk::TcrSession::REMOTE_DESKTOP_INFO:
94+
//do something
95+
break;
96+
case tcrsdk::TcrSession::SCREEN_CONFIG_CHANGE:
97+
//do something
98+
break;
99+
case tcrsdk::TcrSession::CURSOR_IMAGE_INFO:
100+
//do something
101+
break;
102+
case tcrsdk::TcrSession::CURSOR_STATE_CHANGE:
103+
//do something
104+
break;
105+
default:
106+
break;
107+
}
108+
}
109+
};
110+
```
111+
* 创建TcrSession
112+
```
113+
tcrsdk::TcrSession* tcrSession = new tcrsdk::TcrSession(new TcrObserver());
114+
```
134 KB
Loading
69.8 KB
Loading
70.7 KB
Loading
47.6 KB
Loading
61.8 KB
Loading
41.4 KB
Loading

0 commit comments

Comments
 (0)