解决方案 »
- 键盘勾子问题
- 如何判断串口数据接收结束?
- 格式化字符串的问题,请教!
- CArray使用中的问题?请教。。。
- 老牌vc群招人,765418 要求爱回答问题,爱问问题,本群定期清理 本群2群 9978616欢迎加入 up有分
- 复杂问题,期待高手解决,小弟在线等待
- 关于自己写的.def如何让组建识别的问题?(在线等)
- 谁知道如何把两个图标合并为一个?如*.lnk图标在为原图标加上小图标
- 拜师CRecordset.Open(CRecordset::forwardOnly,"select * from table")方法的问题。
- c++课程设计mfc酒店点菜管理系统设计
- openssl vs2008配置链接报错
- MFC中读取串口时数据总是不全,请问各位大侠有什么方式可以全部读好,谢谢了
void CCommThread::ReceiveData(void)
{
byte myByte[1024];
DWORD dwErrors; // 错误信息
COMSTAT Rcs; // COMSTAT结构通信设备的当前信息
int Len=0;
LOOP:
ClearCommError(hCom,
&dwErrors,
&Rcs); // 获取读缓冲区数据长度
if(Len!=Rcs.cbInQue) // 数据未收完
{
Len=Rcs.cbInQue;
Sleep(3);
goto LOOP; // 再接收
} if(Len<1) // 无数据
return; // 读缓冲区并处理收到的数据
if(ReadFile(hCom,
&myByte,
Len,
NULL,
&Rol))
{
//****************************
// PopToUdp(myByte,Len,true);
//****************************
// 报告数据
byte* p=new byte[Len];
memcpy(p,myByte,Len);
ReportUp(RS_RECEIVE,p,Len);
}
// Sleep(10); // 此处无,将使下一次读不稳定,可能读不到结果
fStopMsg=false; // 允许事件函数发送消息
}