DWORD dwEvtMask;
::SetCommMask(hComm,EV_RXCHAR);
::WaitCommEvent(hComm,&dwEvtMask,NULL);
这样如果接收缓冲区没有收到字符,WaitCommEvent是不会返回的。注意这种情况hComm不能用Async I/O模式打开。
如果要使用Async I/O必须给WaitCommEvent的第三个参数传递一个OVERLAPPED结构,并且其中的hEvent成员必须是一个手动重置的事件对象.说着比较麻烦,具体去看MSDN.
::SetCommMask(hComm,EV_RXCHAR);
::WaitCommEvent(hComm,&dwEvtMask,NULL);
这样如果接收缓冲区没有收到字符,WaitCommEvent是不会返回的。注意这种情况hComm不能用Async I/O模式打开。
如果要使用Async I/O必须给WaitCommEvent的第三个参数传递一个OVERLAPPED结构,并且其中的hEvent成员必须是一个手动重置的事件对象.说着比较麻烦,具体去看MSDN.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货