抑制消息框 R6025 纯虚函数调用

Posted

技术标签:

【中文标题】抑制消息框 R6025 纯虚函数调用【英文标题】:Suppress Message Box R6025 Pure Virtual Function Call 【发布时间】:2015-06-02 09:09:53 【问题描述】:

我正在开发一个使用旧的C++-Library.NET 4 应用程序(WPF)。 这个库有问题,有时我会得到纯虚函数调用。 (而且我对那个库无能为力......)

我已经使用来自msvcr100.dll_set_purecall_handler 设置了一个处理程序。在调试期间,我还可以确认调用了我的处理程序。 然而,在离开我的处理程序后,应用程序显示MessageBox 通知纯虚函数调用,然后退出应用程序。

如何防止此messagebox 显示并继续运行应用程序?

【问题讨论】:

【参考方案1】:

由于无法安全地从对纯虚函数的调用中恢复,因此纯调用处理程序应在向用户报告错误后终止进程。如果您的处理程序返回而不是终止,则假定它什么也没做,并且默认处理开始。

只需在处理程序结束时调用exit(0) 或类似名称,原始对话框就会被取消。

【讨论】:

以上是关于抑制消息框 R6025 纯虚函数调用的主要内容,如果未能解决你的问题,请参考以下文章

“纯虚函数调用”崩溃从何而来?

纯虚函数调用

在 C# 中处理纯虚函数调用

C++ 纯虚函数

Windows应用程序因纯虚函数调用而崩溃

C++纯虚函数和抽象类