vs2017,运行时出现"未找到image.cpp,已引发异常,读取访问权限冲突怎么办

vs2017,运行时出现"未找到image.cpp,已引发异常,读取访问权限冲突怎么办,第1张

有时候,我们使用 VS(Visual Studio)编译程序时会出现“无法查找或打开PDB文件”的提示,并且此时程序会生成失败,无法运行,如下图所示:

大家不要惊慌,出现这种提示并不是代码写错了,而是编译器设置的问题,改一下设置就 OK 了。

先说一下PDB文件是什么

当程序在 VS 上编译时,程序所依赖的所有动态链接库(dll 文件)也会被编译,编译过程中每个 dll 都会产生一个pdb文件,又称为“符号文件”,是一个存储数据的信息文件,其包含 dll 库在编译过程的某些调试信息,例如程序中所用到的全局变量、局部变量、函数名以及他们的入口地址等。

pdb 文件主要用于调试程序,多用于当VS中有多个项目,且项目之间互有依赖关系时,使用pdb文件调试程序,往往会事半功倍,初学者一般不会用到。

当使用VS 调试程序时,会默认加载你的程序以及程序依赖的dll库产生的所有pdb文件,但是结果往往是VS自己找不到依赖库的pdb文件,于是就提示给你“无法查找或打开pdb文件”。

如何修复这个错误

我们可以通过对 VS 做适当的设置,使之能够查找到相应的 PDB 文件,具体步骤如下(这里我们以 VS2017 为例进行说明,其它版本的 VS *** 作步骤也一样)。

1) 选择菜单栏中的“调试  -->选项”,如下图所示:

2) d出“选项”对话框后,选择“调试 -->常规”,在右侧选项栏中勾选“启用源服务器支持”(包含的 3 个子选项不用勾选),此时会d出一个安全警报框,选择“是”即可,如下图所示:

3) 还是在“选项”对话框中,选择“调试 -->符号”,在右侧选项栏中勾选“Microsoft符号服务器”,此时会d出一个提示对话框,点击“确定”即可。同时,对于缓存符号的目录,选择图示中的目录即可:

4) 确定之后,重新运行你的程序,首次运行时,由于编译器会加载所有动态链接库的pdb文件,可能会等到几秒钟。程序运行后,之前输出窗口中的“无法查找或打开pdb文件”的提示不见了,如下图所示:

如上图所示,由于pdb文件,又名“符号文件”,所以“已加载符号”,也就是成功加载了动态链接库对应的pdb文件。

完全注册dll:

打开“运行”输入→cmd→回车

然后把下面这行字符复制到黑色cmd框里面去回车等待dll文件全部注册完成就关闭可以了,为防止输入错误可以复制这条指令,然后在命令提示符后击鼠标右键→粘贴→回车,耐心等待,直到屏幕滚动停止。

(下面是要运行的代码):

for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1

完成后重新启动机器。

这个比较详细

unknown software exception (0x*00000**),位置为0x0***0***

这个问题大多是杀毒残留,但也有可能是你卸载某个软件不正确留下的注册表残留。杀毒后,病毒被删除,但启动项里相关加载设置还在,解决方法就是以下方法,如果找不到那个加载失败的启动项就可能是做了伪装,具体伪装到哪个启动项需要分析系统环境。启动项并不一定指向特定的dll名字,提示中的加载失败的项也可能只是启动项其中一个需要调用的文件,而这个文件可能被相关软件程序卸载的时候一并删除了,所以要了解你所有启动项的来路,这样才能找出可疑的启动项来删除,从而解决加载失败的问题。正常的启动项百度都可以搜索到其解释。

1、开始菜单→运行→输入msconfig回车

在里边的启动栏里把可疑的.dll前面的勾去掉就行了。

2、开始→运行→msconfig→启动→把加载项可疑xx.dll的勾去掉→ 重启电脑一般就可以解决了,如果还d出来再看下面:

3、开始→运行→regedit→ 在下面的位置删除相应键值:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

4、注册表修改法:点→开始→运行→输入→regedit→在

“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\”中,右边窗口找到残留的程序名删除。或者打开注册表编辑器→在编辑→查找中→输入出错文件名→把搜到的删除→按F3键→搜索下一个→直到删完所有的为止。

如果以上方式无法处理好,看下面:

完全注册dll:

打开“运行”输入→cmd→回车

然后把下面这行字符复制到黑色cmd框里面去回车等待dll文件全部注册完成就关闭可以了,为防止输入错误可以复制这条指令,然后在命令提示符后击鼠标右键→粘贴→回车,耐心等待,直到屏幕滚动停止。

(下面是要运行的代码):

for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1

完成后重新启动机器。

应用程序错误问题:

1.木马病毒造成常用病毒捆绑应用程序和系统文件,然后安全杀毒软件把有木马病毒应用程序和系统文件查杀导致。

2.应用程序组件丢失,应用程序完整的运行需要一些系统文件或者某些ll文件支持的,如果应用程序组件不完整也会导致的。

3.系统文件损坏或丢失,盗版系统或Ghost版本系统,很容易出现该问题。

4. *** 作系统自身的问题, *** 作系统本身也会有bug 。

5.硬件问题,例如内存条坏了或者存在质量问题,或者内存条的金手指的灰尘特别多。

应用程序错误解决方法:

1.检查电脑是否存在病毒,请使用百度卫士进行木马查杀。

2.系统文件损坏或丢失,盗版系统或Ghost版本系统,很容易出现该问题。建议:使用完整版或正版系统。

3.安装的软件与系统或其它软件发生冲突,找到发生冲突的软件,卸载它。如果更新下载补丁不是该软件的错误补丁,也会引起软件异常,解决办法:卸载该软件,重新下载重新安装试试。顺便检查开机启动项,把没必要启动的启动项禁止开机启动。

4.如果检查上面的都没问题,可以试试下面的方法。

打开开始菜单→运行→输入cmd→回车,在命令提示符下输入下面命令 for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1回车。

完成后,在输入下面

for %i in (%windir%\system32\*.ocx) do regsvr32.exe /s %i 回车。

如果怕输入错误,可以复制这两条指令,然后在命令提示符后击鼠标右键,打“粘贴”,回车,耐心等待,直到屏幕滚动停止为止(重启电脑)。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8016805.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存