c++ - Winsock -> WinRT Windows.Networking.Sockets -- 映射错误代码

标签 c++ windows-runtime winsock

我正在将 C++ 库移植到 WinRT。它使用 Winsock。 WinRT 不支持 Winsock。 Microsoft 指导您改用 Windows.Networking.Sockets。我在尝试将 Winsock API 映射到 Windows.Networking.Sockets API 时遇到问题。我在托管代码中使用过套接字,但在 C++ 中没有使用过。我不熟悉 Winsock API。

我肯定会遇到其他问题,但首先,我需要确定获取套接字错误代码的正确方法。我认为这是正确的映射:WSAGetLastError() == SocketError.GetStatus(hresult)

正确吗?

两者的错误代码数量差别很大。此外,WSAGetLastError() 返回最后一次失败的 Windows Sockets 操作的错误状态,其中 SocketError.GetStatus(hresult) 需要一个 hresult 作为输入,可能来自特定尝试操作的异常处理。这将需要进行大量重构才能进行此更改,因此我想确保在开始工作之前我做对了。

最后,是否有人可以向我推荐定义我正在寻找的映射的文档?

最佳答案

Winsock isn't supported in WinRT.

截至 2014 年 10 月,它是。 https://blogs.windows.com/buildingapps/2014/10/13/winsock-and-more-open-source-for-your-windows-store-apps/

在我这边用 Winsock 重建了应用程序并且可以确认它可以工作。

关于c++ - Winsock -> WinRT Windows.Networking.Sockets -- 映射错误代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17664869/

相关文章:

email - 如果我使用共享契约(Contract)和共享文件,是否可以在 Windows 8 Metro 应用程序中为邮件应用程序设置主题?

c++ - 使用重叠 IO 获取发件人的 IP 地址

qt - TCP优化

windows - 每个 Windows 版本的 listen() 最大队列大小

c++ - 如何在 QUrl 中包含百分号

c++ - 在并发队列中覆盖

c++ - 在 stop() 之后清除 boost::asio::io_service

c++ - 为什么我的计算出错了?

xaml - WinRT & XAML - 资源文件但不是本地化的语言?

c# - 如何在 WinRT 8.1 上 P/调用 kernel32.dll