Как предотвратить сбой при ucrtbase.dll при запуске exe-файла в Windows?

#c #windows #dll

#c #Windows #dll

Вопрос:

Когда компьютер запускает мой exe-файл в Windows, он выходит из строя в ucrtbase.dll следующим образом:

 extern "C" LONG WINAPI __scrt_unhandled_exception_filter(LPEXCEPTION_POINTERS const pointers)
{
    auto const exception_record = reinterpret_cast<EHExceptionRecord*>(pointers->ExceptionRecord);
    if (PER_IS_MSVC_PURE_OR_NATIVE_EH(exception_record))
    {
        terminate(); // Crash here
    }

    return EXCEPTION_CONTINUE_SEARCH;
}
  

Проблема в том, что сбой происходит, когда мое приложение вызывает функцию библиотеки (DLL) третьей стороны, поэтому я не могу это контролировать.

В настоящее время есть ли какие-либо проблемы с ucrtbase.dll ?

Как я могу предотвратить этот сбой в моей области?

Ответ №1:

По-видимому, есть исключение, которое никто не поймал. Вам нужно спуститься по стеку вызовов, пока вы не дойдете до вашего кода и не попытаетесь перехватить исключение там. Вам нужно найти свой код, который вызывает код этой библиотеки, который, в свою очередь, вызывает исключение. Не могу сказать ничего более конкретного, не видя кода, который приводит к этому.