不知如何在主线程中读串口数据
   while(!b_resive)
{

if (!ReadFile(m_hCom, AcceptCode, 3,&nRealRead, &wrOverlapped)) 
{
if (GetLastError() == ERROR_IO_PENDING)
{
while(!GetOverlappedResult(m_hCom,
&wrOverlapped, &nRealRead, TRUE ))
{
dwError = GetLastError();
if(dwError == ERROR_IO_INCOMPLETE)
continue; 
else
{
ClearCommError( m_hCom, 
&dwErrorFlags, &ComStat ) ; 
break;
}
}
}
}
}
AcceptCode中收不到正确值!

解决方案 »

  1.   

    首先要等待事件呀
    while(1)
    {
    ::WaitForSingleObject(g_event,INFINITE);
    TRACE("fuck\n");
            if(WaitCommEvent(hCom,&lpEvmsk,NULL))
    {
    if(lpEvmsk==EV_RXCHAR)
    {
    ClearCommError(hCom,&dwError,&comstat);
    if(comstat.cbInQue>0)
    {
    dwLength=comstat.cbInQue;
      ReadFilehCom,ch,dwLength,&dwLength,&m_oRead);
    ch[dwLength]='\0';
    str=ch;
    TRACE("%s",str);
    ::SendMessage(hWnd,WM_PAINT,0,0);
    str=_T("");
    }
    }
    }
    }
      

  2.   

    你的g_event是哪个事件!我是想接收数据!
      

  3.   

    EV_RXCHAR就是串口接收BUF接收到字符后相应的事件
      

  4.   

    我的g_event为写的事件,如果你不用异步方式
    可以省去