void DisplayWinApiError(std::wstring pszAPI)
{
    LPVOID lpvMessageBuffer;
    wchar_t szPrintBuffer[512];
    DWORD nCharsWritten;
    FormatMessage(
        FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM,
        NULL, GetLastError(),
        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
        (LPTSTR)&lpvMessageBuffer, 0, NULL);
    wsprintf(szPrintBuffer,
        L"ERROR: WINAPI = %s.\n   error code = %d.\n   message    = %s.\n",
        pszAPI.c_str(), GetLastError(), (char *)lpvMessageBuffer);
    WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE),szPrintBuffer,
        lstrlen(szPrintBuffer),&nCharsWritten,NULL);
    LocalFree(lpvMessageBuffer);
}

讓地獄深紅的天亮 發表在 痞客邦 PIXNET 留言(0) 人氣()