奇幻新游活动中心



如何捕获DLL中的错误

CLR无法捕获本机代码启动的线程中引发的任何硬件异常。要做到这一点,唯一的方法是使用SetUnhandledExceptionFilter(),在你注册的回调在它将要拆除进程之前被Windows调用。

在也有托管代码的程序中使用它充满了陷阱和陷阱。CLR也使用它,为了生成像NullReferenceException和DivideByZeroException这样的异常,它必须使用它。你必须非常小心才不会破坏它。做一些事情,比如调用GetThreadId(),只过滤已知是本机线程的异常,这一点很重要。接下来要做的就是使用MiniDumpWriteDump()生成一个小型转储,这样就可以调试崩溃了。