Abrufen des letzten Fehlercodes
Wenn viele Systemfunktionen fehlschlagen, legen sie den letzten Fehlercode fest. Wenn Ihre Anwendung weitere Details zu einem Fehler benötigt, kann sie den letzten Fehlercode mithilfe der GetLastError-Funktion abrufen und eine Beschreibung des Fehlers mithilfe der FormatMessage--Funktion abrufen.
Das folgende Beispiel enthält eine Fehlerbehandlungsfunktion, die die Fehlermeldung druckt und den Prozess beendet.
#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();
}