Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I retrieve an error string from WSAGetLastError()?

I'm porting some sockets code from Linux to Windows.

In Linux, I could use strerror() to convert an errno code into a human-readable string.

MSDN documentation shows equivalent strings for each error code returned from WSAGetLastError(), but I don't see anything about how to retrieve those strings. Will strerror() work here too?

How can I retrieve human-readable error strings from Winsock?

like image 936
Drew Hall Avatar asked Aug 03 '10 21:08

Drew Hall


1 Answers

wchar_t *s = NULL; FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,                 NULL, WSAGetLastError(),                MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),                (LPWSTR)&s, 0, NULL); fprintf(stderr, "%S\n", s); LocalFree(s); 
like image 187
mxcl Avatar answered Sep 25 '22 05:09

mxcl