void CSerialPort::ReceiveChar(CSerialPort* port, COMSTAT comstat)
{
BOOL bRead = TRUE;
BOOL bResult = TRUE;
DWORD dwError = 0;
DWORD BytesRead = 0;
unsigned char RXBuff;
for (;;)
{
EnterCriticalSection(&port->m_csCommunicationSync);
bResult = ClearCommError(port->m_hComm, &dwError, &comstat);
LeaveCriticalSection(&port->m_csCommunicationSync);
if (comstat.cbInQue == 0)
{
// break out when all bytes have been read
// 沒有數據需要讀取時,跳出。妳需要的答案就在這裏。
break;
}
為了解答妳這個問題,我特地從網上重新找了這個類(好久沒用了,身邊沒有),也分析了壹下代碼,所以記得給分啊。