C++ ライブラリを WinRT に移植中です。Winsock を使用しています。Winsock は WinRT ではサポートされていません。Microsoft は、代わりに Windows.Networking.Sockets を使用するように指示しています。Winsock API を Windows.Networking.Sockets API にマップしようとして、質問に直面しています。私はマネージド コードでソケットを使用しましたが、C++ では使用しませんでした。私は Winsock API に慣れていません。
他の質問にも出くわすことになると思いますが、まず最初に、ソケット エラー コードを取得する正しい方法を決定する必要があります。これは正しいマッピングだと思います: WSAGetLastError() == SocketError.GetStatus(hresult)
正しい?
- このドキュメントでは、winsock を使用して発生する可能性のあるエラー コードについて詳しく説明しています:
Windows Sockets Error Codes - このドキュメントは、私が同等だと思う列挙を詳しく説明していますが、非常に異なっています:
SocketErrorStatus 列挙
エラー コードの数は、これら 2 つの間で大きく異なります。また、WSAGetLastError() は、失敗した最後の Windows ソケット操作のエラー ステータスを返します。ここで、SocketError.GetStatus(hresult) は、おそらく特定の試行された操作の例外処理から、入力として hresult を必要とします。この変更を行うにはかなりのリファクタリングが必要になるため、作業を行う前に、それが正しいことを確認したいと思います。
最後に、私が探しているマッピングを定義している誰かが参照できるドキュメントはありますか?