编程开发

关注公众号 jb51net

关闭
软件教程 > 编程开发 >

VS调试报错0xC0000005怎么办? 0xc000041d/0xc0000005等错误代码解决办法

脚本之家

早前微软宣布在 Windows 11 24H2 版使用基于 IE 9 Chakra 引擎开发的 JScript9Legacy 脚本引擎替代系统原有的 JScript 脚本引擎,新版本提供更好的安全性,但可能也会降低兼容性导致部分软件出现错误。

例如在 Microsoft Visual Studio 2022 中尝试在资源视图中添加资源就可能导致 IDE 卡死或者崩溃重启,检查事件查看器记录可以看到出错模块为 jscript9Legacy.dll,错误代码为 0xc000041d 或 0xc0000005。

具体崩溃原因则是 Visual Studio 的资源管理器相关模块依然依赖于 JScript 引擎,所以在微软换成 JScript9Legacy 引擎后出现兼容性问题,导致 Visual Studio 卡死或者直接崩溃。

要解决这个问题也比较简单,只需要通过注册表换回旧版引擎即可:

通过以上操作后 Windows 11 24H2 的默认脚本引擎被重新修改为 JScript.dll,此时诸如 Microsoft Visual Studio 等软件应该不会再因为脚本引擎的问题发生崩溃。

在这里也提醒各位:

如果运行其他软件时弹出 Script Error 错误弹窗,并且错误来源显示为 JavaScript runtime error,那么也是引擎导致的兼容性问题,此时也可以通过上面的步骤将引擎重新设置为 JScript 来解决问题。

错误代码0xc0000005的其他解决办法

VS调试时遇到"0xC0000005:读取位置时发生访问冲突"问题时,先别急去排除内存,看看容易忽略的配置属性。

一、配置属性

1.windows程序:

2.控制台程序:

产生"0xC0000005"的原因应是程序运行时找不到适当的入口函数。

二、内存问题

1.空指针和野指针的区别

2.已释放内存的访问;释放后的指针为什么还可以用?为什么指针释放后要赋NULL?

int *ss=new int(10);
delete ss;
*ss=11;
cout<<*ss;	//结果为:11

delete只是命令系统把指针指向的堆空间回收,告诉计算机“这块空间没人在用,你可以使用了“,但指针依然指向原来的堆空间,所以delete一个指针后,要立刻把它赋值为nullptr或NULL。

3.内存越界/内存泄漏

三、WINDOWS系统的问题

详细解决办法请参考:Windows系统提示错误代码0xc0000005怎么解决?0xc0000005错误修复方法

推荐阅读:助力开发者迅速上手! Visual Studio Code推出Office加载项开发工具预览版