MSComm控件溢出问题 求指导

eedsrxd 2016-07-03 11:30:06
串口部分程序
void CSCommDlg::OnComm()
{
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]; //设置BYTE数组 An 8-bit integerthat is not signed.
CString strtemp;
if(RXDataRefreshFlg == TRUE)
{
m_strRXData.Empty();
RXDataRefreshFlg=FALSE;
}
if(m_ctrlComm.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符
{
variant_inp=m_ctrlComm.GetInput(); //读缓冲区
safearray_inp=variant_inp; //VARIANT型变量转换为ColeSafeArray型变量
len=safearray_inp.GetOneDimSize(); //得到有效数据长度
for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组
for(k=0;k<len;k++) //将数组转换为Cstring型变量
{
BYTE bt=*(char*)(rxdata+k); //字符型
strtemp.Format("%c",bt); //将字符送入临时变量strtemp存放
m_strRXData+=strtemp; //加入接收编辑框对应字符串
}
}
int i=m_strRXData.GetLength();
if(m_strRXData.GetLength()==58)
SendMessage(USER_RXDATA,0,0); //消息响应函数 为处理消息用
strtemp.ReleaseBuffer();
return;
}

运行一会出现
0x77c12a16指令引用的0x00001000 该内存不能为read
这是为什么 求指导 谢谢
758407526QQ
...全文
1706 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
银点 2016-07-13
  • 打赏
  • 举报
回复
找个现成的组件用吧,比如VictorComm

703

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder ActiveX/COM/DCOM
社区管理员
  • ActiveX/COM/DCOM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧