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

后端 未结 3 946
猫巷女王i
猫巷女王i 2020-12-16 09:59

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.

MS

3条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-12-16 10:51

    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);
    

提交回复
热议问题