WSAGetLastError 函式 (winsock2.h)
WSAGetLastError 函式會傳回最後一個失敗 Windows Sockets 作業的錯誤狀態。
Syntax
int WSAAPI WSAGetLastError();
傳回值
傳回值表示此執行緒最後一個失敗 Windows Sockets 作業的錯誤碼。
備註
WSAGetLastError 函式會傳回呼叫執行緒發生的最後一個錯誤。 當特定的 Windows Sockets 函式指出發生錯誤時,應該立即呼叫此函式,以擷取失敗函式呼叫的擴充錯誤碼。 當呼叫optname參數為 SO_ERROR時,這個擴充的錯誤碼可能會與從 getockopt取得的錯誤碼不同,因為WSAGetLastError適用于所有線程特定的通訊端。
如果函式呼叫的傳回值指出錯誤碼中傳回錯誤或其他相關資料,應該立即呼叫 WSAGetLastError 。 這是必要的,因為某些函式可能會在成功時將最後一個擴充的錯誤碼重設為 0,覆寫先前失敗函式所傳回的擴充錯誤碼。 若要特別重設擴充的錯誤碼,請使用 WSASetLastError 函式呼叫,並將 iError 參數設定為零。 使用SO_ERROR optname參數呼叫時,取得ockopt函式也會將擴充錯誤碼重設為零。
WSAGetLastError函式不應該用來檢查非同步訊息收據上的擴充錯誤值。 在此情況下,擴充錯誤值會在訊息的 lParam 參數中傳遞,這與 WSAGetLastError傳回的值不同。
此函式傳回的 Windows 通訊端擴充錯誤碼,錯誤文字描述會列在 Windows 通訊端錯誤碼底下。 這些錯誤碼和與錯誤碼相關聯的簡短文字描述是在 Winerror.h 標頭檔中定義。 FormatMessage函式可用來取得傳回錯誤的訊息字串。
如需如何將通訊端應用程式移植到 Winsock 時如何處理錯誤碼的資訊,請參閱 錯誤碼 - errno、h_errno 和 WSAGetLastError。
Windows Phone 8:Windows Phone Windows Phone 8 和更新版本上的市集應用程式支援此函式。
Windows 8.1和Windows Server 2012 R2:Windows 市集應用程式在 Windows 8.1、Windows Server 2012 R2 及更新版本上支援此功能。
規格需求
最低支援的用戶端 | Windows 8.1、Windows Vista [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2003 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | winsock2.h (包含 Winsock2.h) |
程式庫 | Ws2_32.lib |
Dll | Ws2_32.dll |