无法定位程序输入点ucrtbase.terminate
Microsoft Visual Studio 2015
编译的程序打开时报无法定位程序输入点ucrtbase.terminate于动态链接库api-ms-win-crt-runtime-|1-1-0.dll
错误。
解决方法(来源知乎):
作者:知乎用户链接:https://www.zhihu.com/question/36384168/answer/110748846来源:知乎著作权归作者所有。
- 导致问题的原因,很可能是因为安装了office2016。(如果你刚安装了office 2016或套件中的某一个,请继续往下阅读)
- 如果是新系统,请升级到SP1,我的是从win7 64位纯净版升级过去的(如果win7的系统更新不行,请使用360的漏洞修复,下面有个功能性补丁更新,直接勾选Service Park1,仅仅更新这个就好)
- 再安装VC2015 Redistributable。(注意,在此之前请在控制面板—程序中查看自己是否已经安装了VCRedistributable2008/2010/2012,至少2008、2010是在安装2015之前是必须要求安装的),鉴于微软官网的下载网速,所以我还是推荐你们360软件管家中的微软常用运行库合集64位(64位中是包含有X86的),或者在驱动精灵中的一键修复的必备组件这个单独的选项中选择修复。(装完建议卸载驱动精灵或360)
- 如果你安装VC2015 Redistributable出现设置错误(此时软件仍然存在于控制面板的程序列表中,看起来还以为正确安装了呢,请在装上VC2008 Redistributable、VC2010 Redistributable等后重装),出现该问题的原因是:我上述列出的2和3没有做好。
- 给一个友情建议,尽管你的系统可能是64位的,但你的office建议安装32位,否则部分高级功能可能有一些小问题,比如Power Map虽然能启动,但是打开后数据过不去。
解决方法2:
如果你的程序使用Microsoft Visual Studio 2015
编译,并且编译选项选择的是/MD
,你不想使用上面让用户手动安装VC2015 Redistributable
的方法,你可以将程序运行时所需要的库打包到应用程序安装包中:
在Microsoft Visual Studio 2015
安装目录下(例如如果你的程序是64位,则打开D:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Remote Debugger\x64
,32位则打开D:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Remote Debugger\x86
)找到如下文件:
api-ms-win-*.dll(共40个文件)
msvcp140.dll
ucrtbase.dll
vcruntime140.dll。
msvcp140_1.dll
将上述文件拷贝到主程序目录,随主程序一起发布即可。