查看: 3306|回复: 1
收起左侧

[教程] “该内存不能为read”的原因及解决方法

[复制链接]
心冰
发表于 2016-6-19 09:58:49 | 显示全部楼层 |阅读模式
本帖最后由 心冰 于 2016-6-19 10:04 编辑

“0X????????”指令引用的“0x????????”内存,该内存不能为read,要终止程序,清单击“确定”“,相信大多数朋友都遇到过这类内存不能为read的提示,有时可能只是偶尔出现,这是正常的,而过于频繁的出现,就一定要去查查深层次的原因了,下面为大家介绍下该内存不能为read的可能原因及解决方法:
一,造成内存不能为read的深层次原因
有些应用程序在启动特别是退出保存数据时,需要调用操作系统提供的“功能函数”进行申请。如果内存分配成功,函数就会将新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用相应内存。这就是“动态内存分配”,内存地址也就是编程中的“指针”。
但由于某些原因,可能导致内存分配的失败。当分配失败时系统函数就会返回一个0值,这时返回值“0”已不表示新启用的指针,而是系统向应用程序提醒:你的申请出现错误未能成功!若应用程序没有检查到这个错误,就会按照“思维惯性”认为这个值就是给它分配的可用指针,继续在此后的运行中使用它认为的“这块内存”。
然而,真正的0地址内存区保存的是系统中最重要的“中断描述符表”,是不允许一般应用程序使用的。应用程序试图使用该0地址,会马上被Windows系统的保护机制捕获,而后由操作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就会出现上述的“写内存”错误,并指出被引用的内存地址为 “0x????????”。
如何避免内存不能为read?
1,安装原汁原味的官方原版系统
2,不滥装软件,只安装自己需要的软件
3,使用一段时间,建议定期清理内存的“金手指”结合部
4,安装知名的杀毒软件,定期查杀,减少感染病毒木马的几率
遇到内存不能为read的紧急补救措施:
在命令提示符(CMD)中输入以下命令后回车:
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
通过运行以上命令可以将系统中所有的.dll文件重新注册一遍(大约需要3-5分钟时间),从而解决当前的内存不能为read的故障。
168888
发表于 2016-6-19 11:43:57 | 显示全部楼层
认真学习了,谢谢楼主
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-5-4 15:15 , Processed in 0.126310 second(s), 16 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表