CByteArray类 操作的问题

wo_xia_zai 2013-02-01 05:13:37
刚学C++ 写了个串口通信程序(串口控件) 关联一个发送按钮,然后添加如下程序:
unsigned char send[52]={0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAB,0xF5,0x00,0x23,0x02,0x01,0x04,0x05,0x06,0x07,0x08,0x01,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xFF,0xFF,0xFF,0xFF,0x20,0x11,0x02,0x23,0x11,0x45,0x29,0x00,0xEF,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xD7};
CString Output;
CByteArray train;
train.RemoveAll(); //数组清空
for(int i=0;i<52;i++)
{
train.Add(send[i]);
}

//Output.Format("%s test",send);


m_com.SetOutput(COleVariant(Output));求指点 :for循环结束 后面应该怎么操作才能把上面的数组元素转成字符串 赋给Output,为什么我用Output=train.Gstdata() 却只能得到 send【52】 前8个字节!!!串口发出来是 AA AA AA AA AA AA AA AB
...全文
223 6 1 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
oyljerry 2013-02-02
字符串会有\0的结束符处理啊,用BYTE数组等
  • 打赏
  • 举报
回复
stjay 2013-02-02
直接m_com.SetOutput(COleVariant(train)); 不用转成字符串
  • 打赏
  • 举报
回复
wo_xia_zai 2013-02-02
果然直接 发 就行了!!!谢谢各位大神!!! 我这是新号 没多少分 希望大家不要见怪!!!
  • 打赏
  • 举报
回复
c1997sdn 2013-02-02
又是因为字符串结束符的问题导致的发送不完整。 换数据类型, 或者对字符串进行编码,比如base64编码后发送,接收后解码
  • 打赏
  • 举报
回复
zhangyihu321 2013-02-01
Output 是一个字符串以 0 结尾的以后都不再发送 建议用BYTE数组 发送的时候强制转化为char* 接收的时候做楼上的那位大牛的操作就可以看到了 。。。
  • 打赏
  • 举报
回复
jimette 2013-02-01
int i= 0; while(i< train.getcount) { cstring str; str.format(_T("%s"),GetAt(i++)); tran += str; } 以上代码未经测试 lz 自己改一下!
  • 打赏
  • 举报
回复
相关推荐
发帖
VC/MFC
加入

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2013-02-01 05:13
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……