当前位置:  开发笔记 > 编程语言 > 正文

赶上出口(1);

如何解决《赶上出口(1);》经验,为你挑选了0个好方法。

我有一个MFC SDI应用程序,它在启动期间加载DLL.我只能查看源代码并使用DLL但不能更改和重新编译它.

现在的情况是,每当DLL引发错误时,它将调用exit(),如下所示.

bool Func()
{
  // .. do something here

  if (error) { exit(999); }
}

在我的MFC应用程序中,我设置了SetUnhandledExceptionFilter来处理所有异常,并创建了一个MiniDump用于调试目的.

所以现在的问题是,每当DLL遇到任何错误时,它只会调用状态代码为999的exit(),而我的ExceptionFilter将无法捕获它,因此没有为PostMortem调试创建MiniDump.

我很想知道:
1.我的全局异常处理程序有没有其他方法可以捕获它?
2.我可以覆盖exit()函数,以便在调用时,我调用"throw("error encounter!")"并且我的全局异常处理程序可以捕获它.
3.我尝试在我的MFC应用程序中使用atexit(),每当DLL调用exit()时,我都会注册另一个函数来抛出错误.但似乎这种方式效果不佳.

我真正想做的是,每当DLL遇到错误时,我都希望生成一个MiniDump,这样我就可以进行PostMortem调试.还有什么可能在这种情况下有效吗?

谢谢.

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有