在 Windows 中运行 .exe 文件时如何防止 ucrtbase.dll 崩溃?

Posted

技术标签:

【中文标题】在 Windows 中运行 .exe 文件时如何防止 ucrtbase.dll 崩溃?【英文标题】:How to prevent crash from ucrtbase.dll when running .exe file in windows? 【发布时间】:2019-03-19 06:28:29 【问题描述】:

当 PC 在 windows 上运行我的 .exe 文件时,它在 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】:

显然有一个没有人发现的异常。您需要深入调用堆栈,直到到达您的代码并尝试在那里捕获异常。您需要找到调用此库代码的代码,这反过来又会导致异常。如果没有看到导致此问题的代码,就无法说出更具体的内容。

【讨论】:

以上是关于在 Windows 中运行 .exe 文件时如何防止 ucrtbase.dll 崩溃?的主要内容,如果未能解决你的问题,请参考以下文章

C++ 应用程序仅在使用本地 Windows 调试器时运行,而不是在哪个 exe 文件中运行

使用 windows api 和 C++,我如何从硬盘驱动器加载 exe 并在自己的线程中运行它?

win10如何完全更改一个exe运行文件的图标样式?

pyinstaller打包exe,运行时读取配置文件报错:NoSectionError,windows

pyinstaller打包exe,运行时读取配置文件报错:NoSectionError,windows

2种方法教你,如何将exe注册为windows服务,直接从后台运行