51Halcon机器视觉

 找回密码
 会员注册

QQ登录

只需一步,快速开始

扫一扫,微信登录

查看: 3228|回复: 2

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

[复制链接]

该用户从未签到

1

主题

1

帖子

41

积分

Rank: 1

积分
41

切换助手验证会员

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

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

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

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

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

2.提问请组织好自己的逻辑,标题注明大概是什么问题,问题内容写详细,需提供问题症状、错误代码、截图、位置等等信息,不要让别人去猜你想问啥;

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

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

  • TA的每日心情
    振奋
    4 小时前
  • 签到天数: 974 天

    连续签到: 10 天

    [LV.10]以坛为家III

    382

    主题

    1558

    帖子

    7380

    积分

    Rank: 9

    积分
    7380

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

    发表于 2018-6-12 16:12:44 | 显示全部楼层
    我刚刚测试了一下这个代码,结果是没有值的。不过经过系统分析,我找到了根本原因!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 | 显示全部楼层
    原来如此,果然搞定了,多谢多谢:handshake

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

    2.提问请组织好自己的逻辑,标题注明大概是什么问题,问题内容写详细,需提供问题症状、错误代码、截图、位置等等信息,不要让别人去猜你想问啥;

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

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

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

    本版积分规则

    建议您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流浏览器浏览本网站

    51Halcon会员技术交流会员技术交流 | 51Halcon官方客服咨询官方客服咨询 | Halcon切换助手使用反馈切换助手使用

    有问题需要咨询站长?| 申请友链| 小黑屋| 手机版| Archiver|  

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

    CopyRight © 2015-2020 51Halcon机器视觉. Tencent Cloud X3.4.

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