我们有一个非托管 C++ 应用程序,它利用第 3 方 API 来读取 CAD 文件。在某些损坏的 CAD 文件上,第 3 方库崩溃并导致我们的 EXE 崩溃。因此,我们的主应用程序是一个单独的 EXE,这样它就不会受到崩溃的影响。但是,我们最终会遇到恼人的 Microsoft 错误报告对话框。
我不想在系统范围内禁用 Microsoft 错误报告。有没有办法关闭单个应用程序的错误报告,这样如果它崩溃了,它会静默崩溃而不会弹出错误对话框?
最佳答案
在 Vista 及更高版本上,WerAddExcludedApplication API 函数可用于从错误报告中排除指定的应用程序可执行文件。据我所知,在 XP 和其他旧版操作系统上没有类似的选项。
但是,由于 WER 只会启动未处理的应用程序异常,您应该能够通过向 EXE 添加“包罗万象”的异常处理程序来抑制它。参见 vectored exception handling有关如何实现这一目标的一些想法。
请注意,抑制所有未处理的异常通常不是一个好主意(例如,会导致您的应用无法通过 Windows Logo 认证),因此您不应随意使用此技术...
关于c++ - 可以阻止单个应用程序的 Microsoft 错误报告吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3416413/