QT开发RabbitMQ填坑

使用Qt开发程序的小伙伴肯定知道QString,但是有时候需要用别的一些C++开发库,我最近开发rabbitmq-c,结果遇坑,原因就是QString和C++标准string的区别,以此记录一下经过。
1.起因
由于需要使用rabbitmq上传数据到服务器,于是我就愉快上网搜rabbitmq资料,嘿!教程啥的都有有还很详细,感觉so easy,于是愉快的下载源码,编译生成dll拿来用(rabbitmq-c编译dll问题可以参考我上一篇文章),"愉快"地生成dll,愉快的的载入项目,愉快的key代码,愉快的测试,哦豁,完蛋了。
报错:命令无效
程序报错,declare exchange和queue不成功。
2.查错
各种查询资料(就是百度+问大神),各种奔溃,期间还差点把公司服务器搞挂了(内心在想要不要跑路),还是没有头绪,感觉我不适合C++,趁早回家养猪,奈何家里也没有猪可养,继续奔溃 ,真的是奔
3.终于知道问题在哪
输出框不是提示“命令无效”么,如上图,好吗我就qDebug一下看看到底给amqp_exchange_declare传了些啥,于是就有下图
在这里插入图片描述
qDebug() << m_conn << m_iChannel << (char*)_exchange.bytes << (char*)_type.bytes;后面(char*)_exchange.bytes 和(char*)_type.bytes居然为空,啥都没有,突然灵光一闪想起有大神说过,QString要转成string,一定不要懒,一定这样一下std::string str = strExchange.toStdString();然后再根据第三方库的参数需求该咋转再转。
最后改成如下OK了,虽然走了一些弯路,害我java都不能边学干活,不开心。
在这里插入图片描述

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值