Подавить сообщение R6025 Чистый вызов виртуальной функции
Я разрабатываю .NET 4
Заявка (WPF
) который использует старый C++-Library
, Эта библиотека глючит, и иногда я получаю чисто виртуальные вызовы функций. (И я ничего не могу поделать с этой библиотекой...)
Я настроил обработчик с помощью _set_purecall_handler
от msvcr100.dll
, Во время отладки я также могу подтвердить, что мой обработчик вызван. Однако, оставив мой обработчик, приложение показывает MessageBox
информирование о чистом вызове виртуальной функции и последующем выходе из приложения.
Как я могу предотвратить это messagebox
от показа и продолжения работы приложения?
1 ответ
Поскольку не существует способа безопасного восстановления после вызова чисто виртуальной функции, ожидается, что обработчик purecall завершит процесс после сообщения об ошибке пользователю. Если ваш обработчик возвращается вместо завершения, то предполагается, что он ничего не сделал, и начинается обработка по умолчанию.
Просто позвони exit(0)
или аналогичный в конце вашего обработчика, и исходное диалоговое окно будет подавлено.