Согласно MSDN :
Возвращаемое значение
Ненулевое значение в случае успеха;
в противном случае 0. В случае сбоя вызова
Win32 функция GetLastError может быть
призван определить причину
ошибка.
GetLastError () возвращает код ошибки, но вы можете вызвать FormatMessage () , чтобы получить читаемую человеком строку из кода ошибки. Вот полезная функция, которая сделает это за вас:
std::string formatwinerr(unsigned long errCode)
{
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM ,
0,
errCode,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0, NULL );
std::string ret((const char*)lpMsgBuf);
LocalFree(lpMsgBuf);
return ret;
}