请问为什么我的上位机接收不到数据?这是我的控件代码,虚心向大神请教。

VARIANT variant_inp;

COleSafeArray safearray_inp;

LONG len,k;

BYTE rxdata[2048]; //设置BYTE数组 An 8-bit integerthat is not signed.

CString strtemp;

if(m_mscom.get_CommEvent()==2) //事件值为2表示接收缓冲区内有字符

{

////////以下你可以根据自己的通信协议加入处理代码
variant_inp=m_mscom.get_Input(); //读缓冲区

safearray_inp=variant_inp; //VARIANT型变量转换为ColeSafeArray型变量
len=safearray_inp.GetOneDimSize(); //得到有效数据长度

for(k=0;k safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组
for(k=0;k {
BYTE bt=*(char*)(rxdata+k);//字符型
strtemp.Format("%c",bt); //将字符送入临时变量strtemp存放
////此处编译有错误,可在项目属性->配置属性->常规里将“字符集”改为使用多字节字符集即可
m_EditReceive+=strtemp; //加入接收编辑框对应字符串

}
}

UpdateData(FALSE); //更新编辑框内容

查看全部
qq_42775940
qq_42775940
2019/03/18 17:06
  • c++
  • 点赞
  • 收藏
  • 回答
    私信

0个回复