Condividi tramite


Funzione WSAGetLastError (winsock2.h)

La funzione WSAGetLastError restituisce lo stato di errore per l'ultima operazione di Windows Sockets non riuscita.

Sintassi

int WSAAPI WSAGetLastError();

Valore restituito

Il valore restituito indica il codice di errore per l'ultima operazione di Windows Sockets del thread non riuscita.

Commenti

La funzione WSAGetLastError restituisce l'ultimo errore che si è verificato per il thread chiamante. Quando si è verificata una determinata funzione Windows Sockets, questa funzione deve essere chiamata immediatamente per recuperare il codice di errore esteso per la chiamata di funzione non riuscita. Questo codice di errore esteso può essere diverso dal codice di errore ottenuto da getockopt quando viene chiamato con un parametro optname di SO_ERROR, che è specifico del socket perché WSAGetLastError è per tutti i socket specifici del thread.

Se il valore restituito di una chiamata di funzione indica che l'errore o altri dati pertinenti sono stati restituiti nel codice di errore, è necessario chiamare immediatamente WSAGetLastError . Questa operazione è necessaria perché alcune funzioni possono reimpostare l'ultimo codice di errore esteso su 0 se hanno esito positivo, sovrascrivendo il codice di errore esteso restituito da una funzione precedentemente non riuscita. Per reimpostare in modo specifico il codice di errore esteso, usare la chiamata alla funzione WSASetLastError con il parametro iError impostato su zero. Una funzione getsockopt quando viene chiamata con un parametro optname di SO_ERROR reimposta anche il codice di errore esteso su zero.

La funzione WSAGetLastError non deve essere usata per verificare la presenza di un valore di errore esteso nella ricezione di un messaggio asincrono. In questo caso, il valore di errore esteso viene passato nel parametro lParam del messaggio e questo può essere diverso dal valore restituito da WSAGetLastError.

Nota Un'applicazione può chiamare la funzione WSAGetLastError per determinare il codice di errore esteso per altre funzioni socket di Windows, come avviene normalmente in Windows Sockets anche se la funzione WSAStartup non riesce o la funzione WSAStartup non è stata chiamata per inizializzare correttamente Windows Sockets prima di chiamare una funzione Windows Sockets. La funzione WSAGetLastError è una delle uniche funzioni della DLL Winsock 2.2 che può essere chiamata nel caso di un errore WSAStartup .
 

I codici di errore estesi di Windows Socket restituiti da questa funzione e la descrizione del testo dell'errore sono elencati in Codici di errore di Windows Sockets. Questi codici di errore e una breve descrizione di testo associata a un codice di errore sono definiti nel file di intestazione Winerror.h . La funzione FormatMessage può essere usata per ottenere la stringa del messaggio per l'errore restituito.

Per informazioni su come gestire i codici di errore durante la conversione delle applicazioni socket in Winsock, vedere Codici di errore- errno, h_errno e WSAGetLastError.

Windows Phone 8: questa funzione è supportata per le app Windows Phone Store in Windows Phone 8 e versioni successive.

Windows 8.1 e Windows Server 2012 R2: questa funzione è supportata per le app di Windows Store in Windows 8.1, Windows Server 2012 R2 e versioni successive.

Requisiti

   
Client minimo supportato Windows 8.1, Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione winsock2.h (include Winsock2.h)
Libreria Ws2_32.lib
DLL Ws2_32.dll

Vedi anche

Codici di errore - errno, h_errno e WSAGetLastError

FormatMessage

WSASetLastError

WSAStartup

Codici di errore di Windows Sockets

Funzioni Winsock

Informazioni di riferimento su Winsock

getsockopt