在我的代码中,我有带 I/O 完成端口的异步 I/O,对于读/写完成回调,我得到一个HANDLE
(当然可以是套接字、文件句柄、命名管道等)。
因此,如果在这样的例程中出现问题,我想检查错误,但是如何知道它是“网络” HANDLE
(a SOCKET
,所以我应该调用WSAGetLastError()
)还是“非网络” HANDLE
(命名管道、文件等,所以我应该打电话GetLastError()
)?我为此使用了一个简单的标志,但它丑陋且不方便。
如果有人可以确认这WSAGetLastError()
只是 的别名GetLastError()
,我将只使用后者。
似乎是这样:
http://us.generation-nt.com/wsagetlasterror-just-an-alias-getlasterror-help-28256642.html
但有人可以证实吗?MSDN 对这个话题不是很清楚。
使用GetLastError()
而不是安全WSAGetLastError()
吗?我的意思是,如果有人声称WSAGetLastError()
它甚至是自 Windows95 以来的别名GetLastError()
,我可以假设它对于下一版本的 Windows 来说是正确的——但我们不能在假设的情况下编写好的代码 :)