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

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); //更新编辑框内容

c++
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!