Halcon机器视觉论坛

 找回密码
 会员注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1176|回复: 2
收起左侧

[已解决] halcon18.05 htuple string转换乱码问题

[复制链接]

该用户从未签到

1

主题

1

帖子

41

积分

Rank: 1

积分
41

切换助手验证会员

发表于 2018-6-12 14:59:19 | 显示全部楼层 |阅读模式

试用员工 |主题 1|帖子 1|积分 41

51Halcon诚邀您的加入,专注于机器视觉开发与应用技术,我们一直都在努力!

您需要 登录 才可以下载或查看,没有帐号?会员注册

x
在VC++中,采用sprintf(szBuffer,"%s",DecodedDataStrings[0].S()); 这样的方法打印字符串(内容全部是数字),出现乱码,该如何解决,有朋友知道的么?

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    耍酷
    昨天 09:23
  • 签到天数: 639 天

    连续签到: 3 天

    [LV.9]以坛为家II

    353

    主题

    1360

    帖子

    5286

    积分

    Rank: 9

    积分
    5286

    突出贡献优秀版主荣誉管理论坛元老切换助手验证会员最佳新人

    发表于 2018-6-12 16:12:44 | 显示全部楼层

    管理员 |主题 353|帖子 1360|积分 5286

    我刚刚测试了一下这个代码,结果是没有值的。不过经过系统分析,我找到了根本原因!VC++代码如下:
    1. HObject  ho_Image, ho_SymbolXLDs;
    2. HTuple  hv_DataCodeHandle, hv_ResultHandles, hv_DecodedDataStrings;

    3. ReadImage(&ho_Image, "1.png");
    4. CreateDataCode2dModel("QR Code", HTuple(), HTuple(), &hv_DataCodeHandle);
    5. FindDataCode2d(ho_Image, &ho_SymbolXLDs, hv_DataCodeHandle, HTuple(), HTuple(),&hv_ResultHandles, &hv_DecodedDataStrings);
    复制代码
    1.png
    这里我测试生成的QR码,内容为:1234567890,经过楼主的方法DecodedDataStrings[0].S()并没有效果,于是分析如下:
    HTuple中对字符串进行了改写,和以前的版本有些不一样了,所以可以看到.S()方法返回的数据是HString类型,声明如下:
    1.   HString S() const     { return (*this)[0].S(); }
    复制代码
    那么这个HString应该是Halcon内部的字符串类,那么肯定可以转我们标准C++类型的方法,继续查找找到下面方法:
    1. // Pointer to string data
    2.   const char* Text() const;
    复制代码
    哈哈,结果出来了,很简单就是这个方法了!赶紧修改原来的代码测试下:
    1. char* pChText = new char[255];
    2. memset(pChText, 0x00, 255);

    3. HString str = hv_DecodedDataStrings.S();
    4. sprintf_s(pChText, 255, "%s", str.Text());
    复制代码

    直接写也是可以的
    1. sprintf_s(pChText, 255, "%s", hv_DecodedDataStrings.S().Text());
    复制代码


    2.png
    这回就可以成功进行赋值了!!!

    提示:sprintf这个函数不是打印函数,是格式化字符串的函数,打印的是printf!


    无效附件更新 权限提升操作 删帖申请 举报以及其他需要帮助请加入QQ群:214663141 广告位招商 有意者联系

    该用户从未签到

    1

    主题

    1

    帖子

    41

    积分

    Rank: 1

    积分
    41

    切换助手验证会员

     楼主| 发表于 2018-6-13 16:20:09 | 显示全部楼层

    试用员工 |主题 1|帖子 1|积分 41

    原来如此,果然搞定了,多谢多谢:handshake

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

    您需要登录后才可以回帖 会员登录 | 会员注册

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    Halcon鸟叔机器视觉1鸟叔机器视觉 | 51Halcon官方客服咨询官方客服咨询 | Halcon切换助手使用反馈切换助手使用反馈 | 51Halcon论坛管理团队论坛管理团队

    申请友链| 小黑屋| 手机版| Archiver| Halcon机器视觉论坛  

    粤ICP备15095995号-2 粤公网安备44030602000670号

    Powered by Discuz! X3.4 Licensed© 2015-2019 Comsenz Inc.

    快速回复 返回顶部 返回列表