阻止win32进程崩溃时的模态对话框

dde*_*nne 6 c++ winapi

我们有一个遗留构建基础架构,用于夜间构建(在Perl中实现),用于编译,链接和单元测试我们的应用程序/插件.在Windows上,如果单元测试过程崩溃,则会弹出一个"锁定"构建场的模态对话框.

是否有一种方法(win32 API调用,系统配置,env var,某些东西......)来禁用此行为以使子进程在崩溃时立即终止,而没有模态对话框和非零退出状态?

谢谢,--DD

PS:我们在Windows上使用SEC(结构化异常处理)进行编译,以便能够使用catch(...)"捕获"崩溃,因此在大多数情况下避免这个问题,但有时这还不够,因为当然有些崩溃不可恢复(例如,如果它们损坏了堆栈).

Dew*_*sen 6

根据谁抛出对话框,您可能需要结合多种方法.

    SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX);

...将关闭一组对话框.

  • 你不仅可以将它们结合起来,还需要将它们结合起来; 标志没有堆叠,当你设置第二个时,你会失去第一个 (3认同)