关于设置windows异常处理函数的问题
最近看到《windows核心编程》第五版的第二十五章关于使用SetUnhandledExceptionFilter设置顶层的异常处理函数时,其中写道:并不建议在自己的异常处理函数中调用之前的未处理异常函数。其在25.1节的第3点的解释是:可能会引起无限递归。我觉得这种做法不会引起无限递归。不知道在什么情况下回引起无限递归,这个地方是不是书上错了?百思不得其解,故来此请教各位。如有人知道还望指教。
[解决办法]
居然没找到你说的这个地方。。。 贴全文吧 或截图
[解决办法]
方案一:
方案二:
#include <stdio.h>
int main(int argc, char* argv[])
{
__try
{
*(int*)0 = 0;
}
__except(printf("Continue run!\n"), EXCEPTION_CONTINUE_EXECUTION)
{
;
}
return 0;
}
#include <windows.h>
#include <stdio.h>
LONG CALLBACK MyExceptionFilter( PEXCEPTION_POINTERS ExceptionInfo )
{
printf("0x%08X\n", ExceptionInfo->ContextRecord->Eip);
return EXCEPTION_CONTINUE_EXECUTION;
}
int main(int argc, char* argv[])
{
SetUnhandledExceptionFilter(MyExceptionFilter);
*(int*)0 = 0;
return 0;
}