Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

Retrieving the Last-Error Code

When many system functions fail, they set the last-error code. If your application needs more details about an error, it can retrieve the last-error code using the GetLastError function and get a description of the error using the FormatMessage function.

The following example includes an error-handling function that prints the error message and terminates the process.

#include <windows.h>

void ErrorExit() 
{ 
 // Retrieve the system error message for the last-error code

 LPVOID lpMsgBuf;
 DWORD dw = GetLastError(); 

 if (FormatMessage(
 FORMAT_MESSAGE_ALLOCATE_BUFFER | 
 FORMAT_MESSAGE_FROM_SYSTEM |
 FORMAT_MESSAGE_IGNORE_INSERTS,
 NULL,
 dw,
 MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
 (LPTSTR) &lpMsgBuf,
 0, NULL) == 0) {
 MessageBox(NULL, TEXT("FormatMessage failed"), TEXT("Error"), MB_OK);
 ExitProcess(dw);
 }

 MessageBox(NULL, (LPCTSTR)lpMsgBuf, TEXT("Error"), MB_OK);

 LocalFree(lpMsgBuf);
 ExitProcess(dw); 
}

void main()
{
 // Generate an error

 if (!GetProcessId(NULL))
 ErrorExit();
}

Feedback

Was this page helpful?

Additional resources