Edit

Share via


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