處理 Winsock 錯誤
大部分的 Windows Sockets 2 函式不會在函式傳回時傳回錯誤的特定原因。 如果成功,某些 Winsock 函式會傳回零的值。 否則,會傳回SOCKET_ERROR值(-1),並呼叫 WSAGetLastError 函式來擷取特定的錯誤號碼。 對於返回控制代碼的 Winsock 函數,如果返回值是 INVALID_SOCKET(0xffff),則表示發生錯誤,並且可以透過呼叫 WSAGetLastError來取得特定的錯誤代碼。 對於傳回指標的 Winsock 函式,NULL 的傳回值表示錯誤,而且可以呼叫 WSAGetLastError 函式來擷取特定錯誤號碼。
Winsock 錯誤碼可以轉換成 HRESULT,以在遠端過程調用中使用 HRESULT_FROM_WIN32。 在舊版的平臺軟體開發工具包(SDK)中,HRESULT_FROM_WIN32在 Winerror.h 標頭檔中定義為巨集指令。 在 Microsoft Windows 軟體開發工具套件 (SDK) 中,HRESULT_FROM_WIN32定義為 Winerror.h 頭檔中的內嵌函式。