# tencentcloud-sdk-cpp **Repository Path**: chenxx98/tencentcloud-sdk-cpp ## Basic Information - **Project Name**: tencentcloud-sdk-cpp - **Description**: Tencent Cloud API 3.0 SDK for C++ - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-06-10 - **Last Updated**: 2021-08-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 简介 欢迎使用腾讯云开发者工具套件(SDK)3.0,SDK3.0是云 API3.0 平台的配套工具。目前已经支持cvm、vpc、cbs等产品,后续所有的云服务产品都会接入进来。新版SDK实现了统一化,具有各个语言版本的SDK使用方法相同,接口调用方式相同,统一的错误码和返回包格式这些优点。 为方便 C++ 开发者调试和接入腾讯云产品 API,这里向您介绍适用于 C++ 的腾讯云开发工具包,并提供首次使用开发工具包的简单示例。让您快速获取腾讯云 C++ SDK 并开始调用。 # 环境依赖 ## 开通产品和密钥获取 1. 从 腾讯云控制台 开通相应产品。 2. 获取 SecretID、SecretKey 以及调用地址(endpoint),endpoint 一般形式为\*.tencentcloudapi.com,如CVM 的调用地址为 cvm.tencentcloudapi.com,具体参考各产品说明。 ## 编译器 * 安装支持 C++ 11 或更高版本的编译器:GCC 4.8 或以上版本 * 暂时仅支持 Linux 环境,不支持 Windows 环境 ## 编译工具 - [cmake](https://cmake.org/) 安装 cmake 3.0 或以上版本,例如: ``` ubuntu sudo apt-get install cmake centos yum install cmake3 ``` ## 依赖库 - [libcurl](https://curl.haxx.se/libcurl/) 安装例子如下: ``` ubuntu sudo apt-get install libcurl4-openssl-dev centos yum install libcurl-devel ``` 备注:建议安装最新版的 libcurl 库,否则可能存在 libcurl 库内存泄露 bug 问题。 - [openssl](https://www.openssl.org/) 安装例子如下: ``` ubuntu sudo apt-get install libssl-dev centos yum install openssl-devel ``` - libuuid 安装例子如下: ``` ubuntu sudo apt-get install uuid-dev centos yum install libuuid-devel ``` # 从源代码构建 SDK 1. 前往 [Github 代码托管地址](https://github.com/tencentcloud/tencentcloud-sdk-cpp) 下载最新代码 2. 进入 SDK 创建生成必要的构建文件 ``` cd mkdir sdk_build cd sdk_build cmake .. make sudo make install ``` # 使用 C++ SDK 示例 下文以 cvm 产品的 DescribeInstances 接口为例: ### 简化版 ```c++ #include #include #include #include #include #include #include #include using namespace TencentCloud; using namespace TencentCloud::Cvm::V20170312; using namespace TencentCloud::Cvm::V20170312::Model; using namespace std; int main() { TencentCloud::InitAPI(); string secretId = ""; string secretKey = ""; Credential cred = Credential(secretId, secretKey); DescribeInstancesRequest req = DescribeInstancesRequest(); CvmClient cvm_client = CvmClient(cred, "ap-guangzhou"); auto outcome = cvm_client.DescribeInstances(req); if (!outcome.IsSuccess()) { cout << outcome.GetError().PrintAll() << endl; TencentCloud::ShutdownAPI(); return -1; } DescribeInstancesResponse rsp = outcome.GetResult(); cout<<"RequestId="<"; string secretKey = ""; Credential cred = Credential(secretId, secretKey); // 实例化一个http选项,可选的,没有特殊需求可以跳过。 HttpProfile httpProfile = HttpProfile(); httpProfile.SetKeepAlive(true); // 状态保持,默认是False httpProfile.SetEndpoint("cvm.ap-guangzhou.tencentcloudapi.com"); // 指定接入地域域名(默认就近接入) httpProfile.SetReqTimeout(30); // 请求超时时间,单位为秒(默认60秒) httpProfile.SetConnectTimeout(30); // 响应超时时间,单位是秒(默认是60秒) ClientProfile clientProfile = ClientProfile(httpProfile); DescribeInstancesRequest req = DescribeInstancesRequest(); Filter respFilter; respFilter.SetName("zone"); respFilter.SetValues({ "ap-guangzhou-1", "ap-guangzhou-2" }); req.SetFilters({ respFilter }); req.SetOffset(0); req.SetLimit(5); CvmClient cvm_client = CvmClient(cred, "ap-guangzhou", clientProfile); // set proxy // NetworkProxy proxy = NetworkProxy(NetworkProxy::Type::HTTP, "localhost.proxy.com", 8080); // cvm_client.SetNetworkProxy(proxy); auto outcome = cvm_client.DescribeInstances(req); if (!outcome.IsSuccess()) { cout << outcome.GetError().PrintAll() << endl; TencentCloud::ShutdownAPI(); return -1; } DescribeInstancesResponse rsp = outcome.GetResult(); cout<<"RequestId="<