本文主要介绍如何快速将腾讯云即时通信 IM SDK 集成到您的 Windows 项目中。
开发环境要求
操作系统:最低要求是 Windows 7。
开发环境:最低版本要求是 Visual Studio 2010,推荐使用 Visual Studio 2019。
集成 IM SDK
下面通过创建一个简单的 MFC 项目,介绍如何在 Visual Studio 2019 工程中集成 SDK。
步骤1:下载 IM SDK
在 Github 下载 Windows IM SDK,Windows IM SDK 的下载方式如下:
下载并解压 IM SDK,为方便可将解压后的文件夹重命名为 ImSDK,其中包含以下几个部分:
|
| |
| 32 位 Release 模式,采用 /MT 选项链接库文件 |
| 64 位 Release 模式,采用 /MT 选项链接库文件 |
步骤2:新建工程
打开 Visual Studio,新建一个名为 IMDemo 的 MFC 应用程序(若 MFC 应用不在备选项前列,可借助上方的搜索模板进行查找),如下图所示:
为了便于快速集成,在向导的 Application Type 页面,请选择比较简单的 Dialog based 类型,其他的向导配置,请选择默认的配置即可。
步骤3:拷贝文件
将解压后的 IM SDK 文件夹(即 步骤1 中获取的 ImSDK 文件夹)拷贝到 IMDemo.vcxproj 所在目录下,如下图所示: 步骤4:修改工程配置
IM SDK 中提供了 Release 模式下 32 位和 64 位的静态库,针对这两类有些地方要专门配置。打开 IMDemo 属性页,在 Solution Explorer > IMDemo 工程的右键菜单 > Properties。
以 32 位 Release 模式 为例,请按照以下步骤进行配置:
1. 添加包含目录
在 C/C++ > General > Additional Include Directories,添加 IM SDK 头文件目录 $(ProjectDir)ImSDK\\include。
2. 添加库目录
在 Linker > General > Additional Library Directories,添加 IM SDK 库目录 $(ProjectDir)ImSDK\\lib\\Win32。
3. 添加库文件
在 Linker > Input > Additional Dependencies,添加 IM SDK 库文件 ImSDK.lib 。
4. 拷贝 DLL 到执行目录
在 Build Events > Pre-Build Event > Command Line,输入 xcopy /E /Y "$(ProjectDir)ImSDK\\lib\\Win32" "$(OutDir)"
,拷贝 ImSDK.dll 动态库文件到程序生成目录。
5. 指定源文件的编码格式
由于 IM SDK 的头文件采用 UTF-8 编码格式,部分编译器按默认系统编码格式编译源文件,可能导致编译无法通过,设置此参数可指定编译器按照 UTF-8 的编码格式编译源文件。
在 C/C++ > Command Line > Additional Options,输入 /source-charset:.65001
。
64 位 Release 与 32 位 Release 的设置大部分都相同,不同在于 IM SDK 的库目录。具体如下:
1. 添加库目录
在 Linker > General > Additional Library Directories,添加 IM SDK 库目录 $(ProjectDir)ImSDK\\lib\\Win64。
2. 拷贝 DLL 到执行目录
Release 模式 在 Build Events > Pre-Build Event > Command Line,输入 xcopy /E /Y "$(ProjectDir)ImSDK\\lib\\Win64" "$(OutDir)"
,拷贝 ImSDK.dll 动态库文件到程序生成目录。
步骤5:打印 IM SDK 版本号
在 IMDemoDlg.cpp 文件中,添加头文件包含:
#include "TIMCloud.h"
#include <string>
在 IMDemoDlg.cpp 文件中找到 CIMDemoDlg::OnInitDialog 函数,在 return 前添加下面的测试代码:
SetWindowText(L"IMDemo");
std::string version = TIMGetSDKVersion();
CString szText;
szText.Format(L"SDK version: %hs", version.c_str());
CWnd* pStatic = GetDlgItem(IDC_STATIC);
pStatic->SetWindowTextW(szText);
按键盘 F5 键运行,打印 IM SDK 的版本号。
常见问题
出现以下错误,请按照前面的工程配置,检查 IM SDK 头文件的目录是否正确添加:
fatal error C1083: unable to open the header file: "TIMCloud.h": No such file or directory
出现以下错误,请按照前面的工程配置,检查 IM SDK 库目录和库文件是否正确添加:
LINK : fatal error LNK1104: Unable to open the `ImSDK.lib` file.
error LNK2019: Unresolved external symbol `__imp__TIMGetSDKVersion`, referenced in the `"protected: virtual int __thiscall CIMDemoDlg::OnInitDialog(void)" (?OnInitDialog@CIMDemoDlg@@MAEHXZ)` function
出现错误,请按照前面的工程配置,检查 IM SDK 的 DLL 是否拷贝到执行目录。
本页内容是否解决了您的问题?