ClearCommError错误问题,求指点,急,谢谢!!!
用ClearCommError来确定缓冲区数据大小,确只能接受8个字节。缓冲区大小我已经设置成4096了。
部分代码
- C/C++ code
int __stdcall InQueCount(HANDLE ComHandle){ if (ComHandle<0){return Bad_CommOpen;} COMSTAT CT; DWORD Error; ClearCommError(ComHandle,&Error, &CT); return (CT.cbInQue);}- C/C++ code
SendData(ComHandle,SEND_BUF,2); SETTIMEOUT(TIME_NAK); do { if (InQueCount(ComHandle) > 0) break; }while(!TIMEOUT); if (TIMEOUT) return ERR; dlength=InQueCount(ComHandle); ReceiveData(ComHandle,ReceiveBuf,dlength);dlength的长度一直为8 求解决方法
[解决办法]
cbInQue: DWORD;//接收缓冲区字节数,未被ReadFile读取的字节
确定下,你需要什么?你发送对应命令,回复的数据长度是8,当然是8