Bagikan melalui


Mengambil Kode Last-Error

Ketika banyak fungsi sistem gagal, mereka mengatur kode kesalahan terakhir. Jika aplikasi Anda memerlukan detail selengkapnya tentang kesalahan, aplikasi dapat mengambil kode kesalahan terakhir menggunakan fungsi GetLastError dan mendapatkan deskripsi kesalahan menggunakan fungsi FormatMessage.

Contoh berikut mencakup fungsi penanganan kesalahan yang mencetak pesan kesalahan dan mengakhiri proses.

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