Nel mio codice, ho I/O asincrono con I/O Completion Ports e, per il completamento di lettura/scrittura , ottengo un HANDLE (che ovviamente può essere un socket, un handle di file, named pipe e così via). Quindi se qualcosa non va in questa routine, voglio controllare l'errore, ma come sapere se è una "rete" HANDLE [un SOCKET, quindi dovrei chiamare WSAGetLastError()] o un "non-network" HANDLE [chiamato pipe, file e così via, quindi dovrei chiamare GetLastError()]? Sto usando una semplice bandiera per questo, ma è brutta e insopportabile. Se qualcuno può confermare che WSAGetLastError() è solo un alias per GetLastError(), userò solo quest'ultimo.WSAGetLastError() è solo un alias per GetLastError()?
Sembra così:
http://us.generation-nt.com/wsagetlasterror-just-an-alias-getlasterror-help-28256642.html
Ma qualcuno può confermare che? MSDN non è molto chiaro su questo argomento.
E: sarebbe sicuro utilizzare GetLastError() anziché WSAGetLastError()? Voglio dire, se WSAGetLastError() è anche un alias di GetLastError() dal momento che Windows95 come affermano qualcuno, posso presumere che sarà vero per la prossima versione di Windows - ma non possiamo scrivere un buon codice sull'assunzione di cose :)
Sì, l'ho visto, ma si utilizzerà GetLastError() anziché WSAGetLastError()? Non credo che separeranno queste 2 funzioni, ormai –
Penso che sia più sicuro utilizzare WSAGetLastError a causa di errori specifici di Winsock. Ma questa è solo la mia opinione. – Xearinox
È più pulito utilizzare la funzione suggerita dalla documentazione, tuttavia in questo caso particolare è altamente improbabile che questi due si interromperanno mai in funzioni separate. –