在Vista上抓住“程序停止工作”

时间:2008-11-23 08:37:37

标签: c windows-vista

在Vista上,我遇到了应用程序崩溃处理程序的问题。基本上,如果出现SEH无法捕获的意外情况,我会在弹出窗口中显示“应用程序停止工作”,blablabla,“关闭程序/调试程序” - 也就是说,在我禁用错误报告后使用系统控制面板。启用错误报告后,您将获得一个任务对话框,可以在线搜索解决方案,关闭,调试。

如果它发生在自动化工具中,这不是那么有趣,我想知道是否有办法摆脱它完全,读取,如果我的应用程序崩溃,它只是崩溃到命令排队或消失,但没有提出对话。

2 个答案:

答案 0 :(得分:6)

使用

SetErrorMode(SetErrorMode(0)|SEM_NOGPFAULTERRORBOX);

但我建议安装一个异常处理程序来创建转储,以便您可以验证发生了什么。例如crashrpt(或here)。

另见

答案 1 :(得分:0)

函数signal适用于所有POSIX平台:

signal(SIGSEGV, &signal_handler);

如果您需要捕获信号不支持的异常,您还可以查看AddVectoredExceptionHandler,这是W32特有的功能。