hur.cn - 华软网

 热门搜索

使用ReadFile读串口数据,返回成功,但GetLastError()为2.

  作者:未知    来源:网络    更新时间:2011/5/28
if(ReadFile(m_hcomm,lpszInputBuffer,dwSizeofBuffer,lpnNumberOfBytesRead,
    lpOverlappedRead))
{
TRACE("ReadFile successful in SetupReadEvent");
#ifdef DEBUG
char buf[100]={0};
sprintf_s(buf,"ReadFile successful in SetupReadEvent,last error:%d!\n",GetLastError());
fwrite(buf,strlen(buf),1,fp);
#endif
return(true);
}

这个问题很奇怪啊,我在VS中调式状态下运行,就是按F5运行没有这个错误,然后按ctrl+F5运行,就出现这个错误了。

搞不懂呢,求助各位了。
打印的日志:
send ZRQINT,tries=0
getZMHeader..
 before SetupReadEvent,last error:0!
ReadFile successful in SetupReadEvent,last error:2!
getZMHeader:0
getZMHeader last error:2
getlasterror:2
quit,byebye
---华软 网友回答---
你用的异步,ReadFile返回时数据可能没读完,其返回值只代表操作是否成功下放,此时错误码就是ERROR_IO_PENDING.

另外,错误码2是ERROR_FILE_NOT_FOUND
---华软网友回复---
未找到文件~可以sleep几秒试试看。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。