C++ 重叠套接字IO中的错误处理

C++ 重叠套接字IO中的错误处理,c++,windows,winsock,overlapped-io,C++,Windows,Winsock,Overlapped Io,在使用重叠的套接字IO和IOCP的情况下,谁能建议一种可靠的方法来处理系统错误 MSDN描述在这方面很麻烦。它表示,对于GetQueuedCompletionStatusReturnCodeFalse,应该有一个后续的GetLastError调用来获取失败操作的错误代码。但是,我们知道,对于WSA函数,应该调用WSAGetLastError(GetLastError在套接字错误时返回0)。所以问题的第一部分是-它在实践中是如何工作的 另一个问题是,如果通过GetQueuedCompletionS

在使用重叠的套接字IO和IOCP的情况下,谁能建议一种可靠的方法来处理系统错误

MSDN描述在这方面很麻烦。它表示,对于
GetQueuedCompletionStatus
ReturnCodeFalse,应该有一个后续的
GetLastError
调用来获取失败操作的错误代码。但是,我们知道,对于WSA函数,应该调用
WSAGetLastError
GetLastError
在套接字错误时返回0)。所以问题的第一部分是-它在实践中是如何工作的

另一个问题是,如果通过
GetQueuedCompletionStatusEx
提取完成数据包,则处理错误。MSDN只描述了此调用本身的错误处理,没有说明如何获取单个失败操作的错误代码


提前感谢您的所有回复和评论。

在用放大镜对MSDN进行了几个小时的实验和研究后,我发现以下几点:

(一篇关于重叠结构的文章,
内部
字段的描述):

I/O请求的错误代码。发出请求时,系统将此成员设置为状态_PENDING,以指示操作尚未启动。请求完成后,系统将此成员设置为已完成请求的错误代码

内部成员最初保留供系统使用,其行为可能会更改

最后一句话看起来不太好,但我想它就是这样