从GetLastError()函数返回错误代码中的文本

时间:2010-06-09 13:28:18

标签: c++ winapi error-handling

我需要获取我从GetLastError函数获得的错误代码的文本。 我看了几个例子,但我想要一个获取代码并返回字符串的函数。 谢谢大家

1 个答案:

答案 0 :(得分:46)

我猜你想要这样的东西:

DWORD   dwLastError = ::GetLastError();
TCHAR   lpBuffer[256] = _T("?");
if(dwLastError != 0)    // Don't want to see a "operation done successfully" error ;-)
    ::FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,                 // It´s a system error
                     NULL,                                      // No string to be formatted needed
                     dwLastError,                               // Hey Windows: Please explain this error!
                     MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),  // Do it in the standard language
                     lpBuffer,              // Put the message here
                     STR_ELEMS(lpBuffer)-1,                     // Number of bytes to store the message
                     NULL);

另见:http://msdn.microsoft.com/en-us/library/ms679351(VS.85).aspx