采用非阻塞的IO来发送...在发送消息后[WriteFile(....)],捕获返回的消息!

解决方案 »

  1.   

    你到VCKBASE下一个CSerialPort,在主页里搜索就能看到,下面是片断:void CSerialPort::ReadEx(void* lpBuf, DWORD dwCount)
    {
      ASSERT(IsOpen());  OVERLAPPED* pOverlapped = new OVERLAPPED;
      ZeroMemory(pOverlapped, sizeof(OVERLAPPED));
      pOverlapped->hEvent = (HANDLE) this;
      if (!ReadFileEx(m_hComm, lpBuf, dwCount, pOverlapped, _OnCompletion))
      {
        delete pOverlapped;
        TRACE(_T("Failed in call to ReadFileEx\n"));
        AfxThrowSerialException();
      }
    }
      

  2.   

    msdn sample里面搜索tty,有例子,主要是开一个线程SetCommMask, WaitCommEvent