ONS C++ Windows SDK 调试方法及注意事项

简介:

此文将展示ONS C++ Windows SDK 整个调试过程,笔者直接使用sdk包中的example消息发送示例代码,开发环境为win7, 64位,Visual Studio Professional 2013(版本 12.0.21005.1 REL)。

下载最新sdk包(文中使用代码为2015年10月14号发布),并解压(本地保存目录为D:\Doc\ONS\C++\aliyun-ons-client-cpp-windows)。

clip_image002

clip_image004

在调试前请详细阅读使用文档说明ALIYUN_ONS_CLIENT_FOR_CPP_AND_NET_USER_GUIDE。

include提供了头文件,lib分别提供了32位和64位的依赖包(ONSClient4CPP.dll, ONSClient4CPP.lib, ONSClient4CPP.pdb),example提供了消息发送和消息消费的示例代码,本文使用的就是消息发送示例代码。

1. 新建项目

clip_image006

确定,点击下一步。

clip_image008

点击完成,项目已经创建好。

2. 创建源文件,并引入头文件

源文件,添加新建项,将example中ProducerExampleForEx内容复制过来。

clip_image010

头文件,添加现有项,将include文件夹中所有头文件添加进来。

clip_image012

项目右键->属性->C/C++->常规->附加包含目录,将头文件目录D:\Doc\ONS\C++\aliyun-ons-client-cpp-windows\include包含进来。

clip_image014

链接器->常规->附件库目录,将ONSClient4CPP.lib的目录D:\Doc\ONS\C++\aliyun-ons-client-cpp-windows\lib\32位包含进来。

clip_image016

以上进行的设置是针对32位的,如果用户需要调试64位,那么需要点击配置管理器,新建x64平台,且将64位ONSClient4CPP.lib所在目录包含进来,如下图。

clip_image018

链接器->输入->附件依赖项,将ONSClient4CPP.lib加进来。

clip_image020

3. 其他设置

C/C++->代码生成->基本运行时检查,置为默认值。

clip_image022

清单工具->输入和输出->嵌入清单,置为否。

clip_image024

4. 生成解决方案

clip_image026

这里选择的解决方案配置为Debug,可以看到相应的可执行文件ONSdemo.exe已经生成,位于目录D:\Program Files\vsProject\ONSdemo\Debug下;同时也可看到一些warn, 一是警告需要调用ONSClient4CPP.dll(见5), 二是警告没有处理异常e(用户需要根据自己的业务,后续加上处理异常的逻辑,增强程序健壮性)。

5. 调用dll

将ONSClient4CPP.dll,ONSClient4CPP.pdb和ONSdemo.exe置于相同目录D:\Program Files\vsProject\ONSdemo\Debug下即可。

sdk包中msvcp120.dll和msvcr120.dll是vs组件,一般在本地安装vs后,可在C:\Windows\System32里找到;如果没有,也不用着急,将sdk包中的这两个dll拷贝到C:\Windows\System32或者和ONSdemo.exe位于相同目录就可以了。

6. 启动调试

启动调试前,根据用户自己的数据,修改参数producerId, topic, AccessKey, SecretKey。

factoryInfo.setFactoryProperty(ONSFactoryProperty::ProducerId, "PID_xxxxxxxx");//在ONS控制台申请的producerId
factoryInfo.setFactoryProperty(ONSFactoryProperty::PublishTopics, "xxxxxxxxx");// 在ONS 控制台申请的msg topic
factoryInfo.setFactoryProperty(ONSFactoryProperty::MsgContent, "input msg content");//消息内容
factoryInfo.setFactoryProperty(ONSFactoryProperty::AccessKey, "xxx");//ONS AccessKey
factoryInfo.setFactoryProperty(ONSFactoryProperty::SecretKey, "xxxxxxxxx");// ONS SecretKey

producerId, topic需要提前在控制台创建,公网环境的topic可在本地测试使用,否则需要部署在相应地域ECS上才能正常使用ONS服务。

启动调试后,没有异常抛出,就说明消息成功发送了。

7. 检验消息是否发送成功

建议在消息中设置key属性,方便利用key值在控制台上查询消息。

例如:msg.setKey("ONSdemotest");

clip_image028

这里再次提醒,32位或者64位依赖包ONSClient4CPP的引入和Win32, x64平台的选择一定要一致;另外,如果使用其他版本vs,需格外留意,与文中其他设置 中的参数值保持一致。




本文转自94cool博客园博客,原文链接http://www.cnblogs.com/94cool/p/5772388.html,如需转载请自行联系原作者

相关文章
|
1月前
|
NoSQL 搜索推荐 openCL
【C/C++ 调试 GDB指南 】gdb调试基本操作
【C/C++ 调试 GDB指南 】gdb调试基本操作
56 2
|
23天前
|
人工智能 机器人 编译器
【C++】Windows端VS code中运行CMake工程(手把手教学)
【C++】Windows端VS code中运行CMake工程(手把手教学)
|
1月前
|
存储 NoSQL 安全
【C++调试】深入探索C++调试:从DWARF到堆栈解析
【C++调试】深入探索C++调试:从DWARF到堆栈解析
62 1
|
3月前
|
关系型数据库 MySQL 开发工具
windows编译poco c++库
windows编译poco c++库
|
30天前
|
Linux 编译器 程序员
【Linux 调试秘籍】深入探索 C++:运行时获取堆栈信息和源代码行数的终极指南
【Linux 调试秘籍】深入探索 C++:运行时获取堆栈信息和源代码行数的终极指南
68 0
|
18天前
|
人工智能 机器人 C++
【C++/Python】Windows用Swig实现C++调用Python(史上最简单详细,80岁看了都会操作)
【C++/Python】Windows用Swig实现C++调用Python(史上最简单详细,80岁看了都会操作)
|
1月前
|
缓存 Linux iOS开发
【C/C++ 集成内存调试、内存泄漏检测和性能分析的工具 Valgrind 】Linux 下 Valgrind 工具的全面使用指南
【C/C++ 集成内存调试、内存泄漏检测和性能分析的工具 Valgrind 】Linux 下 Valgrind 工具的全面使用指南
65 1
|
1月前
|
算法 Unix Linux
【C/C++ 疑难解决】深入解析C++链接错误:实用的调试技巧和方法
【C/C++ 疑难解决】深入解析C++链接错误:实用的调试技巧和方法
13 1
|
1月前
|
并行计算 安全 编译器
【C/C++ 编译相关 gcc】一次搞懂GCC编译选项:优化代码、调试程序必备!
【C/C++ 编译相关 gcc】一次搞懂GCC编译选项:优化代码、调试程序必备!
38 0
|
1月前
|
NoSQL 算法 Shell
【C/C++ 调试 GDB指南 】详解 gdb 断点的设置方式
【C/C++ 调试 GDB指南 】详解 gdb 断点的设置方式
19 2

热门文章

最新文章