• UIKit
  • SDK
  • 服务端 API
Chat/
SDK/
Windows/
快速开始/
SDK
  • 概述
    • 产品概述
    • 定价
      • 账单概述
      • Chat 包月套餐
      • Chat 增值计费说明
  • 快速开始
    • 集成 SDK
    • 初始化
    • 登录登出
  • 消息
    • 介绍
    • 发送消息
    • 接收消息
    • 历史消息
    • 转发消息
    • 消息变更
    • 插入消息
    • 删除消息
    • 清空消息
    • 撤回消息
    • 在线消息
    • 已读回执
    • 查询消息
    • 群 @ 消息
    • 群定向消息
    • 消息免打扰
    • 消息扩展
    • 消息回应
    • 消息翻译
    • 消息置顶
  • 会话
    • 介绍
    • 会话列表
    • 获取会话
    • 会话未读数
    • 置顶会话
    • 删除会话
    • 会话草稿
    • 会话标记
    • 会话分组
  • 群组
    • 介绍
    • 管理群组
    • 群资料
    • 管理群成员
    • 群成员资料
    • 自定义属性
    • 群计数器
  • 社群话题
    • 管理社群
    • 权限组
  • 用户
    • 用户资料
    • 用户状态
    • 管理好友
    • 好友分组
    • 黑名单
    • 关注与粉丝
  • 本地搜索
    • 搜索消息
    • 搜索好友
    • 搜索群组
    • 搜索群成员
  • 信令
  • 客户端 API
    • C++
    • C
  • 更新日志
  • 控制台指南
    • 新版控制台说明
    • 创建和升级应用
    • 基本配置
    • 功能配置
    • 账号管理
    • 群组管理
    • 回调配置
    • 用量统计
    • 实时监控
    • 开发辅助工具
  • 产品介绍
    • 消息管理
      • 单聊消息
      • 消息存储
      • 离线推送
      • 群消息
      • 消息格式
    • 账号系统
      • 登陆验证
      • 在线状态管理
    • 群相关
      • 群组系统
      • 群组管理
    • 用户资料和关系链
      • 资料管理
      • 关系链管理
  • 场景化实践
    • 实现直播间搭建
    • 实现游戏内聊天
    • AI 聊天机器人
    • 超大娱乐社群
    • 类Discord社群指南
  • 推送服务(Push)
    • 服务概述
    • 开通服务
    • 快速跑通
    • 厂商通道
      • 厂商配置
        • Android
        • iOS
        • Flutter
        • React-Native
      • 快速接入
        • Android
        • iOS
        • Flutter
        • React-Native
    • 数据统计
    • 排查工具
    • 客户端 API
      • Android
      • iOS
      • Flutter
      • React Native
    • 服务端 API
      • 发起全员/标签推送
      • 单发推送
      • 获取应用属性名称
      • 设置应用属性名称
      • 获取用户属性
      • 设置用户属性
      • 删除用户属性
      • 获取用户标签
      • 添加用户标签
      • 删除用户标签
      • 清空用户标签
      • 推送撤回
    • 推送回调
      • 全员/标签/单发回调
      • 其他推送回调
    • 高级功能
      • 自定义角标
      • 自定义铃音
      • 自定义小图标
      • 自定义点击跳转
      • 推送消息分类
    • 更新日志
      • Android
      • iOS
      • Flutter
      • React Native
    • 常见问题
  • 错误码

集成 SDK

本文主要介绍如何快速将腾讯云 Chat SDK 集成到您的 Windows 项目中。

开发环境要求

操作系统:最低要求是 Windows 7。
开发环境:最低版本要求是 Visual Studio 2010,推荐使用 Visual Studio 2019。

集成 Chat SDK

下面通过创建一个简单的 MFC 项目,介绍如何在 Visual Studio 2019 工程中集成 SDK。

步骤1:下载 Chat SDK

Github 下载 Windows Chat SDK,下载并解压 Chat SDK,为方便可将解压后的文件夹重命名为 ImSDK,其中包含以下几个部分:
目录名
说明
c_include
C 接口头文件
cpp_include
C++ 接口头文件
shared_lib\Win32
32 位 Release 模式,采用 /MT 选项链接库文件
shared_lib\Win64
64 位 Release 模式,采用 /MT 选项链接库文件

步骤2:新建工程

打开 Visual Studio,新建一个名为 ChatDemo 的 MFC 应用程序(若 MFC 应用不在备选项前列,可借助上方的“搜索模板”进行查找),如下图所示:

为了便于快速集成,在向导的 应用程序类型 页面,请选择比较简单的 基于对话框 类型,其他的向导配置,请选择默认的配置即可。如下图所示:


步骤3:拷贝文件

将解压后的 Chat SDK 文件夹(即 步骤1 中获取的 ImSDK 文件夹)拷贝到 ChatDemo.vcxproj 所在目录下,如下图所示:




步骤4:修改工程配置

Chat SDK 中提供了 Release 模式下 32 位和 64 位的动态库,针对这两类有些地方要专门配置。打开 ChatDemo 属性页,在 解决方案资源管理器 > ChatDemo 工程的右键菜单 > 属性
32 位 Release 模式 为例,请按照以下步骤进行配置:
1. 添加包含目录 在 C/C++ > 常规 > 附加包含目录,添加 Chat SDK C 接口的头文件目录 $(ProjectDir)ImSDK\c_include,如下图所示:

2. 添加库目录 在 链接器 > 常规 > 附加库目录,添加 Chat SDK 库目录 $(ProjectDir)ImSDK\shared_lib\Win32,如下图所示:

3. 添加库文件 在 链接器 > 输入 > 附加依赖项,添加 Chat SDK 库文件 ImSDK.lib ,如下图所示:

4. 拷贝 DLL 到执行目录 在 生成事件 > 生成前事件 > 命令行,输入 xcopy /E /Y "$(ProjectDir)ImSDK\shared_lib\Win32" "$(OutDir)",拷贝 ImSDK.dll 动态库文件到程序生成目录,如下图所示:

5. 指定源文件的编码格式 由于 SDK 的头文件采用 UTF-8 编码格式,部分编译器按默认系统编码格式编译源文件,可能导致编译无法通过,设置此参数可指定编译器按照 UTF-8 的编码格式编译源文件。 在 C/C++ > 命令行 > 其他选项,输入 /source-charset:.65001,如下图所示:



64 位 Release32 位 Release 的设置大部分都相同,不同在于 SDK 的库目录。具体如下:
1. 添加库目录
链接器 > 常规 > 附加库目录,添加 SDK 库目录 $(ProjectDir)ImSDK\shared_lib\Win64,如下图所示:



2. 拷贝 DLL 到执行目录
Release 模式生成事件 > 生成前事件 > 命令行,输入 xcopy /E /Y "$(ProjectDir)ImSDK\shared_lib\Win64" "$(OutDir)",拷贝 ImSDK.dll 动态库文件到程序生成目录,如下图所示:



步骤5:打印 Chat SDK 版本号

在 ChatDemoDlg.cpp 文件中,添加头文件包含:
#include "TIMCloud.h"
在 ChatDemoDlg.cpp 文件中找到 CIMDemoDlg::OnInitDialog 函数,在 return 前添加下面的测试代码:
SetWindowText(L"IMDemo");
CString szText;
szText.Format(L"SDK version: %hs", TIMGetSDKVersion());
CWnd* pStatic = GetDlgItem(IDC_STATIC);
pStatic->SetWindowTextW(szText);
按键盘 F5 键运行,打印 SDK 的版本号,如下图所示:




常见问题

出现以下错误,请按照前面的工程配置,检查 SDK 头文件的目录是否正确添加:
fatal error C1083: 无法打开包括文件: “TIMCloud.h”: No such file or directory
出现以下错误,请按照前面的工程配置,检查 SDK 库目录和库文件是否正确添加:
LINK : fatal error LNK1104: 无法打开文件“ImSDK.lib”
error LNK2019: 无法解析的外部符号 __imp__TIMGetSDKVersion,该符号在函数 "protected: virtual int __thiscall CIMDemoDlg::OnInitDialog(void)" (?OnInitDialog@CIMDemoDlg@@MAEHXZ) 中被引用
出现以下错误,请按照前面的工程配置,检查 SDK 的 DLL 是否拷贝到执行目录:




在技术社区提问