Windows/C++: FormatMessage() с GetExceptionCode() игнорирует FORMAT_MESSAGE_IGNORE_INSERTS

Я хотел бы использовать код, подобный следующему, чтобы сообщить о делении на ноль, нарушениях доступа и т. Д. Моя проблема заключается в том, что, несмотря на установку флага FORMAT_MESSAGE_IGNORE_INSERTSсообщения усекаются в позиции вставки.

__try
{
    int *p=0;
    int i = *p; // access violation
}
__except (EXCEPTION_EXECUTE_HANDLER)
{
    char  message[1024];
    FormatMessageA(
        FORMAT_MESSAGE_FROM_HMODULE | FORMAT_MESSAGE_IGNORE_INSERTS,
        GetModuleHandleA("NTDLL.DLL"),
        GetExceptionCode(),
        MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),
        message, 
        sizeof (message), 
        0);
    OutputDebugStringA(message);
}       

Приведенный выше код дает "The instruction at 0x" в отладочном выводе, который не очень полезен.

Я делаю что-то неправильно?

0 ответов

Другие вопросы по тегам