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)。
在调试前请详细阅读使用文档说明ALIYUN_ONS_CLIENT_FOR_CPP_AND_NET_USER_GUIDE。
include提供了头文件,lib分别提供了32位和64位的依赖包(ONSClient4CPP.dll, ONSClient4CPP.lib, ONSClient4CPP.pdb),example提供了消息发送和消息消费的示例代码,本文使用的就是消息发送示例代码。
1. 新建项目
确定,点击下一步。
点击完成,项目已经创建好。
2. 创建源文件,并引入头文件
源文件,添加新建项,将example中ProducerExampleForEx内容复制过来。
头文件,添加现有项,将include文件夹中所有头文件添加进来。
项目右键->属性->C/C++->常规->附加包含目录,将头文件目录D:\Doc\ONS\C++\aliyun-ons-client-cpp-windows\include包含进来。
链接器->常规->附件库目录,将ONSClient4CPP.lib的目录D:\Doc\ONS\C++\aliyun-ons-client-cpp-windows\lib\32位包含进来。
以上进行的设置是针对32位的,如果用户需要调试64位,那么需要点击配置管理器,新建x64平台,且将64位ONSClient4CPP.lib所在目录包含进来,如下图。
链接器->输入->附件依赖项,将ONSClient4CPP.lib加进来。
3. 其他设置
C/C++->代码生成->基本运行时检查,置为默认值。
清单工具->输入和输出->嵌入清单,置为否。
4. 生成解决方案
这里选择的解决方案配置为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");
这里再次提醒,32位或者64位依赖包ONSClient4CPP的引入和Win32, x64平台的选择一定要一致;另外,如果使用其他版本vs,需格外留意,与文中其他设置 中的参数值保持一致。
ONS C++ Windows SDK 调试方法及注意事项的更多相关文章
- LeanCloud SDK 中秒杀70%问题的调试方法
非常多同学在LeanCloud上遇到的不少问题,事实上能够自我解决的,如今介绍一下LeanCloud上的调试方法. LeanCloud 是通过 REST API来进行前后端分离的.这意味着当出现故障的 ...
- Windows Kernel Way 1:Windows内核调试技术
掌握Windows内核调试技术是学习与研究Windows内核的基础,调试Windows内核的方式大致分为两种: (1)通过Windbg工具在Windows系统运行之初连接到Windows内核,连接成功 ...
- Windows 下常见的反调试方法
稍稍总结一下在Crack或Rervese中比较常见的一些反调试方法,实现起来也比较简单,之后有写的Demo源码参考,没有太大的难度. ①最简单也是最基础的,Windows提供的API接口:IsDebu ...
- 安装 VS 2015 Update 2 + Windows SDK Tools 1.3.1 + Windows SDK 10586.212 后提示找不到 10586.0 SDK 问题的解决方法
将 Visual Studio 2015 升级到 Update 2,并安装 Windows SDK Tools 1.3.1 和 Windows SDK 10586.212 后,有可能造成原本已安装的 ...
- Premiere Pro & After Effects插件开发调试方法
在给Adobe Premiere Pro(PR)和Adobe After Effects(AE)插件开发时,对于实时调试插件有着很强的需求.除了业务需求外,单步调试插件还能够摸清楚Plugin和Hos ...
- Platform SDK、Windows SDK简介
Platform SDK及Windows SDK是由微软公司出品的一个软件开发包,向在微软的Windows操作系统和.NET框架上开发软件和网站的程序员提供头文件.库文件.示例代码.开发文档和开发工具 ...
- Linux内核调试方法总结【转】
转自:http://my.oschina.net/fgq611/blog/113249 内核开发比用户空间开发更难的一个因素就是内核调试艰难.内核错误往往会导致系统宕机,很难保留出错时的现场.调试内核 ...
- 【转】Linux内核调试方法总结
目录[-] 一 调试前的准备 二 内核中的bug 三 内核调试配置选项 1 内核配置 2 调试原子操作 四 引发bug并打印信息 1 BUG()和BUG_ON() 2 dump_sta ...
- Linux内核调试方法总结
Linux内核调试方法总结 一 调试前的准备 二 内核中的bug 三 内核调试配置选项 1 内核配置 2 调试原子操作 四 引发bug并打印信息 1 BUG()和BUG_ON() 2 ...
随机推荐
- 线程安全、数据同步之 synchronized 与 Lock
本文Demo下载传送门 写在前面 本篇文章讲的东西都是Android开源网络框架NoHttp的核心点,当然线程.多线程.数据安全这是Java中就有的,为了运行快我们用一个Java项目来讲解. 为什么要 ...
- Android Studio教程--Android项目分享到Github
首先下载安装git 下载地址:https://git-scm.com/ 打开AS,并设置如下: 到github上面注册一个帐号 运行--cmd cd C:\Program Files\Git\bin ...
- 【代码笔记】iOS-改变文字输入框背景
一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController ...
- swift学习之UI控件(一)
// // ViewController.swift // test // // Created by chuangqu on 15/7/23. // Copyright (c) 2015年 ...
- Android touch mode和focusableInTouchMode分析
首先我们来看看touch mode的定义.它是用户和手机进行交互时view层次结构的一个状态.它本身是很容易理解的, 代表了最近一次的交互是否是通过触摸屏发生的,因为在Android设备上还存在别的交 ...
- IOS开发证书显示“此证书的签发者无效”解决方法
今天早上同事说咱们的证书无法使用了,显示“此证书的签发者无效”.一开始以为谁误操作了证书,查看后发现所有证书都无效了.查了会才发下原来是Apple Worldwide Developer Relati ...
- GlassFish: 001 安装、启动
安装 在GlassFish项目的首页就可以找到如何安装: https://glassfish.java.net/download.html#gfoseTab 上面给出了5个步骤:0,1,2,3,4 第 ...
- UNABLE TO PURGE A RECORD(二)
上一篇文章说明了bug出现的原因和原理分析,要修复bug似乎已经水到渠成了,但远没有这么简单,只因为“并发”.要修复问题,首先要做的第一件事情是稳定的复现问题.由于数据库系统是一个并发系统,并且这个b ...
- SQL Server调优系列进阶篇(如何索引调优)
前言 上一篇我们分析了数据库中的统计信息的作用,我们已经了解了数据库如何通过统计信息来掌控数据库中各个表的内容分布.不清楚的童鞋可以点击参考. 作为调优系列的文章,数据库的索引肯定是不能少的了,所以本 ...
- x01.os.15: 看上去很美
张碧晨在韩国学的不是技巧,而是基本功:气息!声音由气息托着,似真声而不是真声,似假声又不是假声,所以才能在动听的地方唱得更动听.编程也是一样,基本功很重要:内存!所谓的黑客高手,攻击的一大手段,便是利 ...