WSAGetLastError 関数 (winsock.h) は、最後に失敗した Windows Sockets 操作のエラーステータスを返す。
WSAGetLastError
(プラグイン / モジュール : ws2_32.dll)
WSAGetLastError 関数 (winsock.h) は、最後に失敗した Windows Sockets 操作のエラーステータスを返す。 [戻り値] 戻り値は、このスレッドで最後に失敗した Windows Sockets 操作のエラーコードを示す。 [備考] WSAGetLastError 関数は、呼び出し元スレッドで最後に発生したエラーを返す。特定の Windows Sockets 関数がエラー発生を示した場合、失敗した関数呼び出しの拡張エラーコードを取得するには、直ちにこの関数を呼び出すべきである。この拡張エラーコードは、getsockopt を SO_ERROR の optname パラメータで呼び出したときに得られるエラーコードとは異なることがある。getsockopt はソケット固有であるのに対し、WSAGetLastError はすべてのスレッド固有ソケットに対して機能する。関数呼び出しの戻り値が、エラーまたは関連データがエラーコードに返されたことを示す場合は、直ちに WSAGetLastError を呼び出すべきである。これは、一部の関数は成功時に最後の拡張エラーコードを 0 にリセットし、直前に失敗した関数が返した拡張エラーコードを上書きしてしまうことがあるため必要である。拡張エラーコードを明示的にリセットするには、iError パラメータを 0 にして WSASetLastError 関数を呼び出す。SO_ERROR の optname パラメータで getsockopt 関数を呼び出しても、拡張エラーコードはゼロにリセットされる。非同期メッセージの受信時に拡張エラー値を調べるのに WSAGetLastError 関数を使うべきではない。この場合、拡張エラー値はメッセージの lParam パラメータで渡されるため、WSAGetLastError が返す値とは異なることがある。 注 アプリケーションは、他の Windows ソケット関数の拡張エラーコードを調べるために、Windows Sockets で通常行うのと同じように WSAGetLastError 関数を呼び出すことができる。これは、WSAStartup 関数が失敗した場合や、Windows Sockets 関数を呼び出す前に WSAStartup 関数を呼び出して Windows Sockets を適切に初期化していない場合でも同様である。WSAGetLastError 関数は、WSAStartup が失敗した場合でも呼び出せる Winsock 2.2 DLL 内の数少ない関数の 1 つである。 この関数が返す Windows Sockets 拡張エラーコードとエラーの説明文は、Windows Sockets エラーコードに列挙されている。これらのエラーコードとそれに関連する簡単な説明は Winerror.h ヘッダファイルに定義されている。FormatMessage 関数を使って、返されたエラーに対応するメッセージ文字列を取得できる。ソケットアプリケーションを Winsock に移植する際のエラーコードの扱いについては、「Error Codes - errno, h_errno and WSAGetLastError」を参照。 Windows Phone 8: この関数は Windows Phone 8 以降の Windows Phone ストアアプリでサポートされる。Windows 8.1 および Windows Server 2012 R2: この関数は、Windows 8.1、Windows Server 2012 R2 以降の Windows ストアアプリでサポートされる。
| プラグイン / モジュール | ws2_32.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の ws2_32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_ws2_32_gen2.hs |