我编写了一个异常处理程序例程,帮助我们发现软件问题。我用
SetUnhandledExceptionFilter();
捕获任何未捕获的异常,并且效果很好。
但是,我的处理程序会弹出一个对话框,要求用户详细说明他们在崩溃时所做的事情。这就是问题所在,因为对话框与崩溃处于相同的线程上下文中,所以对话框继续泵送应用程序的消息。这给我带来了一个问题,因为我们的一次崩溃发生在 WM_TIMER 中,每分钟都会发生一次。您可以想象,如果对话框在屏幕上显示超过一分钟,则会发送 WM_TIMER 并且应用程序会重新崩溃。在这种情况下重新进入异常处理程序是个坏消息。
如果我让 Windows 处理崩溃,Windows 会显示一个似乎可以正常工作的对话框,但会停止将消息传播到应用程序的其余部分,因此不会重新发出 WM_TIMER。
有谁知道我怎样才能达到同样的效果?
谢谢丰富