ReadFile函数 WIN7 返回错误

年轻的时候,在WIN XP下写了个串口通讯工具,一直流畅运行,表现良好。


后来把这套软件运行在win7下,ReadFile函数就出错了,getlasterror得到的错误码是 ERROR_IO_PENDING(997):重叠的IO操作。

我擦,这是什么事情,各种搞不懂,至今也搞不懂,只是加入了以下逻辑,就可以在WIN7下完美 运行了。

如果您看到这篇文章,也知道为什么XP下能正常运行,而WIN 7就需要加入这样的逻辑操作的话,请留言,谢谢。


BOOL  bDone = 
ReadFile(m_hCom,  //handle to file *
m_DataBuffer,  //data buffer *
rst.cbInQue,  //number of bytes to read * * * * * *
&factbyte,  //number of bytes read
&rOverLaped);
if (! bDone && GetLastError() == ERROR_IO_PENDING)
{
   if (WaitForSingleObject(rOverLaped.hEvent,  500) == WAIT_OBJECT_0)
   {
     bDone = GetOverlappedResult(m_hCom, &rOverLaped, &factbyte, FALSE);
   }
}

你可能感兴趣的:(系统级)