3

我想使用类似于以下的代码来报告被零除、访问冲突等。我的问题是,尽管设置了 flag 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"在调试输出中产生,这并不是很有帮助。

难道我做错了什么?

4

0 回答 0