我正在开发一个使用旧C++-Library
的.NET 4
应用程序(WPF
)。这个库有bug,有时我得到纯虚函数调用。(而且我对那个库也无能为力…)
我已经从msvcr100.dll
使用_set_purecall_handler
设置了一个处理程序。在调试期间,我还可以确认调用了我的处理程序。然而,在离开我的处理程序之后,应用程序显示MessageBox
通知纯虚函数调用,然后退出应用程序。
我怎样才能防止这个messagebox
显示并继续运行应用程序?
由于没有办法从对纯虚函数的调用中安全地恢复,因此purecall处理程序应该在向用户报告错误后终止该进程。如果您的处理程序返回而不是终止,则假定它没有做任何事情,并启动默认处理。
只需在处理程序末尾调用exit(0)
或类似的方法,原始对话框将被抑制。