twentysixfour 2015-01-10 08:43 采纳率: 0%
浏览 2239

VC编的串口程序,返回的VARIANT类型的数据怎么处理。

VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048];
CString strtemp;
if (m_MSComm.GetCommEvent()==2)
{
    variant_inp=m_MSComm.GetInput();
    safearray_inp=variant_inp;
    len=safearray_inp.GetOneDimSize();
    for (k=0;k<len;k++)
    {
        safearray_inp.GetElement(&k,rxdata+k);
    }
    for (k=0;k<len;k++)
    {
        BYTE bt=*(char*)(rxdata+k);
        strtemp.Format("%c",bt);
        m_edit2+=strtemp;
    }
}
UpdateData(FALSE);
代码如上,就是抄袭别人的,但是我用串口调试助手返回的数据是正常的,此代码就是错误。
但是科学技术法表示的是正确的,比如12.3e6这样的是正确的,但是-120.9-110.1之类的就是错误,而且每次错误显示的都是1000e30
  • 写回答

2条回答 默认 最新

  • oyljerry 2015-01-10 08:58
    关注

    判断variant的类型,然后取对应字段的数据

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器