当我使用OVERLAPPED结构调用ConnectNamedPipe并随后检查GetLastError时,我经常看到GetLastError返回ERROR_SUCCESS。我正在阅读documentation的方式,这绝不应该发生。我的理解是,如果客户端已经连接,则应设置ERROR_PIPE_CONNECTED,而不是ERROR_SUCCESS。
有没有人见过这个?操作系统是32位Windows 7。
答案 0 :(得分:0)
这是OVERLAPPED的典型特征。它假设一个异步套接字,它在连接之前告诉参数是否正常。连接完成或失败后,GetOverlappedResult()
将返回正确的状态。所以我想这是一个小文档错误。
答案 1 :(得分:0)
尝试在ConnectNamedPipe之后立即调用GetLastError()。 不要在两者之间调用任何API。