【发布时间】:2013-10-17 07:41:12
【问题描述】:
我对 Windows API 感到困惑。我尝试使用PeekNamedPipe 查看匿名管道中是否还有字节。此函数失败,但GetLastError() 不返回错误。
我的代码的相关部分是
if( !PeekNamedPipe( handle, NULL, 0, NULL, &numBytesAvailable, NULL ) )
throw PeekNamedPipeException( "GetLastError() returned " + std::to_string( GetLastError() ) );
这会引发错误,生成以下消息:
terminate called after throwing an instance of 'PeekNamedPipeException'
what(): GetLastError() returned 0
但如果PeekNamedPipe 失败,GetLastError 不应该返回 0 (== ERROR_SUCCESS),对吧?
感谢您的帮助!
【问题讨论】:
标签: c++ winapi pipe getlasterror