我正在将 C++ 库移植到 WinRT。它使用 Winsock。WinRT 不支持 Winsock。Microsoft 指示您改用 Windows.Networking.Sockets。我在尝试将 Winsock API 映射到 Windows.Networking.Sockets API 时遇到问题。我在托管代码中使用了套接字,但在 C++ 中没有。我不熟悉 Winsock API。
我确信我会遇到其他问题,但首先,我需要确定获取套接字错误代码的正确方法。我认为这是正确的映射: WSAGetLastError() == SocketError.GetStatus(hresult)
正确的?
- 此文档详细说明了使用 winsock 的可能错误代码:
Windows Sockets Error Codes - 该文档详细说明了一个我认为等效但非常不同的枚举:
SocketErrorStatus enumeration
这两者之间的错误代码数量非常不同。此外,WSAGetLastError() 返回最后一个失败的 Windows Sockets 操作的错误状态,其中 SocketError.GetStatus(hresult) 需要一个 hresult 作为输入,可能来自特定尝试操作的异常处理。这将需要进行大量重构才能进行此更改,因此我想确保在开始工作之前我已经正确完成了它。
最后,是否有人可以参考我的文档来定义我正在寻找的映射?