Windows / C ++:带有GetExceptionCode()的FormatMessage()忽略FORMAT_MESSAGE_IGNORE_INSERTS

时间:2012-10-04 09:41:43

标签: c++ windows exception formatmessage

我想使用类似于以下内容的代码来报告被零除,访问冲突等等。我的问题是,尽管设置了标志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 个答案:

没有答案