vs2008无法使用SetUnhandledExceptionFilter捕获异常

时间:2014-03-10 02:44:00

标签: c++ exception crt

我正在写一个可以被任何exe使用的CrashReport.dll,只要exe加载它,它捕获所有异常,提示用户报告,重启应用程序等。 我正在使用 SetUnhandledExceptionFilter ,但它不起作用。似乎VS2008 CRT始终处理崩溃,当发生崩溃时,它弹出一个带有“Microsoft Visual C ++运行时库”的对话框,我的异常回调没有被调用。

我google了很多,文章说CRT注册了一个异常处理程序。但是当我用OllyDbg调试我的exe时,在 SetUnhandledExceptionFilter 设置一个断点,我发现它被调用了两次。 第一个是CRTStartup,它是在main之前 第二个是在main函数中,由我的代码调用 没有更多的调用,我甚至设置了一个API挂钩到 SetUnhandledExceptionFilter ,以防止进一步调用。

有什么想法吗?

感谢。

1 个答案:

答案 0 :(得分:0)

问题似乎与项目配置有关,我删除了旧的解决方案,创建了一个新的并将所有文件复制到新的解决方案,它的工作原理。我不知道为什么。 但是谢谢你们。