Recupero del codice Last-Error
Quando molte funzioni di sistema hanno esito negativo, impostano l'ultimo codice di errore. Se l'applicazione necessita di altri dettagli su un errore, può recuperare l'ultimo codice di errore usando la funzione GetLastError
L'esempio seguente include una funzione di gestione degli errori che stampa il messaggio di errore e termina il processo.
#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();
}