赞
踩
最近翻看以前的学习笔记,重温了不少之前调试C++代码遇到的坑,顿时觉得,记笔记真是程序开发工作中必备可少的环节。现将部分内容分享一下:
VS调试程序时,提示缺少ucrtbased.dll
当在VS下调试程序时,如果缺少ucrtbased.dll,一般会出现如下几种错误提示:
1)程序无法启动,因为您的计算机缺少 ucrtbased.dll 。尝试重新安装程序来解决这个问题。
2)启动 ucrtbased.dll 发生错误。无法找到指定的模块
3)加载 ucrtbased.dll 发生错误。无法找到指定的模块
4)ucrtbased.dll 的设计可能不适合在 Windows 上运行,或可能包含错误。
究其错误原因,多半是ucrtbased.dll被删除或放错位置、被PC上存在的恶意软件破坏、Windows注册表被损坏等。
解决办法:
访问网址:https://cn.dll-files.com/ucrtbased.dll.html,下载ucrtbased.dll。
ucrtbased(64位).ziphttps://mp.weixin.qq.com/s/J3m6fD89X8EpCfnm1LtbAg
ucrtbased(32位).ziphttps://mp.weixin.qq.com/s/J3m6fD89X8EpCfnm1LtbAg
ucrtbased.dll文件分64位和32位两种,分别放在电脑的
C:\Windows\System32和C:\Windows\SysWOW64目录下。这里要特别注意的是,64位windows系统下,SysWOW64目录下存放的是32位的DLL,System32目录下存放的是64位的DLL。SysWow64文件夹,是64位Windows,用来存放32位Windows系统文件的地方,而System32文件夹,是用来存放64位程序文件的地方。当32位程序加载System32文件夹中的dll时,操作系统会自动映射到SysWow64文件夹中的对应的文件。如果放置DLL的位置弄错了,就会弹出0xc000007b的错误提示。
这里附带提下,当出现0xc000007b的错误提示时,多半可以从如下几个方向排查:
1)系统缺少DX9,需要下载相关的DX修复工具
2)缺少对应的VC运行时库
3)程序所需要的动态库版本不对
4)就是上面提到的程序是64位的,加载的却是32位的动态库,反之亦然
最后,再附上怎么使用VS自带的查看程序是64位还是32位的工具的方法,这里以VS2015为例,步骤如下:
开始->所有程序->Microsoft Visual Studio 2015->Visual Studio Tools ->“VS2015 开发人员命令提示”后,就像普通的cmd一样的命令行环境,就可以正常使用VS的一些工具,其中就包括dumpbin,如下图所示:
执行dumpbin /headers C:\Windows\SysWOW64\msvcp140d.dll命令,红色方框内显示该DLL是x86,32位的,反之显示的是64位。
vs调试程序时,提示已加载xxx.dlll,无法查找或打开PDB文件
平时我们用VS调试程序时,有可能出现下面这样的问题:
1.“Win32Project.exe”(Win32):已加载“D:\Win32Project\Debug\Win32Project.exe”。已加载符号。
2.“Win32Project.exe”(Win32):已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。
3.“Win32Project.exe”(Win32): 已加载“C:\Windows\SysWOW64\kernel32.dll”。已加载符号。
4.“Win32Project.exe”(Win32): 已加载“C:\Windows\SysWOW64\KernelBase.dll”。无法查找或打开 PDB 文件。
5.“Win32Project.exe”(Win32): 已加载“C:\Windows\SysWOW64\msvcr120d.dll”。已加载符号。
6.程序“[4308] Win32Project.exe”已退出,返回值为 0 (0x0)。
解决办法:
1)点 调试
2)然后 选项和设置
3)右边勾上 启用源服务器支持
4)左边点 符号
5)把微软符号服务器勾上
6)运行的时候等一下
7)问题解决
今日分享到此,更多内容,请关注“程序员超仔”微信公众号,或访问个人博客地址:www.51yourong.cn
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。