MSVC2015:找不到 __vcrt_UnhandledException

Posted

技术标签:

【中文标题】MSVC2015:找不到 __vcrt_UnhandledException【英文标题】:MSVC2015: __vcrt_UnhandledException could not be located 【发布时间】:2015-07-19 09:54:07 【问题描述】:

在使用 Windows 7 将 C++ 项目更新到 VS2015 RC 时,我在调试时遇到了以下错误对话框:

project_name.exe - 未找到入口点

在动态链接库 VCRUNTIME140.ddl 中找不到过程入口点 __vcrt_UnhandledException。

在输出窗口中,(连同丢失的 PDB 的典型列表)我得到:

在 project_name.exe 中的 0x775E1FB6 (ntdll.dll) 处引发异常:0xC0000139:未找到入口点。

程序“[9400] project_name.exe”已退出,代码为 -1073741511 (0xc0000139)“未找到入口点”。

我的项目依赖于SDL、SDL_image、OpenGL 和ODE。

我尝试了很多不同的方法,包括将子系统从 CONSOLE 更改为 WINDOWS,使用各种不同的选项重新编译 SDL2,使用显式 WinMain 函数替换 SDL2main.lib 以及更改编译器设置,例如禁用异常。

我在网上找不到任何提及符号__vcrt_UnhandledException。使用 VCRUNTIME140.dll 使代码可执行的必要条件是什么?

【问题讨论】:

【参考方案1】:

事后看来,这个错误的解决方案非常明显,但运行时的反馈非常无益,以至于我最终在找到答案之前尝试了很多不同的事情。

UnhandledException 很可能只是程序启动时需要的 CRT 中的第一个符号。这表明项目中的某些东西需要不同版本的 Visual C 运行时 DLL(来自 VS2015 预览版)(因此__vcrt_UnhandledException 中的__vcrt_)。

在这种情况下,需要针对 VS2015 RC 重建 ODE。更一般地说,确保在升级到更新版本的 MSVC2015 时重建所有内容

【讨论】:

嗯,这不可能,VCRUNTIME140.dll 是一个 VS2015 特定的 DLL。当然,您只是在为随着每次中间 beta/rc 更新而迅速变化的产品的 beta 测试付出代价。 这更有意义。我不记得有问题的 ODE 版本是下载还是使用 VS2015 预览版构建的。我会更新答案。谢谢。 是的;此符号存在于 Visual C++ 2015 运行时库的早期预览版本中。它在 CTP6 或 RC 中被删除(我忘了哪个)。一般来说,我们可能会对库进行重大更改,直到发布候选 (RC) 版本;之后我们不会进行任何重大更改。

以上是关于MSVC2015:找不到 __vcrt_UnhandledException的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 MSVC 2008 在 Windows 上使用 qtwebkit 构建 Qt5 - leveldb 找不到 stdint.h

vs2015 + opencv3.4.0 + qt msvc2015_64-5.7.1 视屏显示

qt-windows-opensource-5.1.0-msvc2010_opengl-x86-offline还需要编译器么?

pyspark:找不到本地文件

使用 CMake 配置 Eigen 3.3.7 时从 C:/Qt/5.12.4/msvc2015_64/bin/qmake.exe 发现不合适的 Qt 版本“5.12.4”

找不到dyld符号? _UIAccessibilityNotificationVoiceOverIdentifier