TDLib

TDLib C# 与 .NET 接入

通过 C++/CLI 构建 TDLib 的 .NET 接口,核对 x86/x64、vcpkg 依赖与示例项目。

GetTGAPI 编辑团队更新于
TDLib 文档核对日期

来源版本 a94b83d67ab4 · TDLib contributors · BSL-1.0

依据官方资料整理,由 GetTGAPI 独立维护。 文档目录与术语表 →

本页内容
  1. 开始之前
  2. TDLib C# 示例
  3. 构建 TDLib
  4. 使用示例

开始之前

此处是 Windows C++/CLI 示例;跨平台 .NET 项目还需要评估 JSON 接口。原文中的旧 Visual Studio 和固定 vcpkg 提交用于理解该版本示例,不应直接当作新的生产环境基线。

TDLib C# 示例

本示例说明如何构建支持 C++/CLI 的 TDLib,以及如何从 C# 使用 TDLib。

构建 TDLib

  • 下载并安装 Microsoft Visual Studio 2015 或更新版本。
  • 下载并安装 CMake,安装时选择 "Add CMake to the system PATH"。
  • 使用 vcpkg 安装 gperf、zlib 和 openssl:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
git checkout c3867e714dd3a51c272826eea77267876517ed99
.\bootstrap-vcpkg.bat
.\vcpkg.exe install gperf:x64-windows gperf:x86-windows openssl:x64-windows openssl:x86-windows zlib:x64-windows zlib:x86-windows
  • (可选,用于生成 XML 文档。)下载 PHP,将 php.exe 所在路径加入 PATH 环境变量。
  • 使用 CMake 构建 TDLib,启用 .NET 支持,并指定正确的 vcpkg 工具链文件路径:
cd <path to TDLib sources>/example/csharp
mkdir build
cd build
cmake -A Win32 -DTD_ENABLE_DOTNET=ON -DCMAKE_TOOLCHAIN_FILE=<path to vcpkg>/scripts/buildsystems/vcpkg.cmake ../../..
cmake --build . --config Release
cmake --build . --config Debug
cd ..
mkdir build64
cd build64
cmake -A x64 -DTD_ENABLE_DOTNET=ON -DCMAKE_TOOLCHAIN_FILE=<path to vcpkg>/scripts/buildsystems/vcpkg.cmake ../../..
cmake --build . --config Release
cmake --build . --config Debug

使用示例

完成 TDLib 构建后,可以打开并运行 TdExample 项目。 它包含一个实现授权和消息发送的简单 C# 控制台应用。 用 Visual Studio 2015 或更新版本打开并运行即可。

关于如何将 TDLib 及其所有原生共享库依赖加入 C# 项目,还可查看 TdExample.csproj。

继续阅读 TDLib 总览与构建。需要应用凭证时,可参考 API ID 与 Hash 申请流程;申请遇到 ERROR,可通过 GetTGAPI 客服 沟通。

原文许可与归属 · BSL-1.0

TDLib contributors · 完整许可文件

Boost Software License - Version 1.0 - August 17th, 2003

Permission is hereby granted, free of charge, to any person or organization
obtaining a copy of the software and accompanying documentation covered by
this license (the "Software") to use, reproduce, display, distribute,
execute, and transmit the Software, and to prepare derivative works of the
Software, and to permit third-parties to whom the Software is furnished to
do so, all subject to the following:

The copyright notices in the Software and this entire statement, including
the above license grant, this restriction and the following disclaimer,
must be included in all copies of the Software, in whole or in part, and
all derivative works of the Software, unless such copies or derivative
works are solely in the form of machine-executable object code generated by
a source language processor.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.