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