explorer:该内存不能为read等报错及解决方法

explorer:该内存不能为read等报错及解决方法
explorer:该内存不能为read等报错及解决方法

原因是系统文件发生错误导致的EXPLOER进程问题

偶尔出现很正常,因为本身WINDOWS的各种未知BUG就很多!经常出现请参考以

下: 1: a 、运行regedit进入注册表, 在

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecute Hooks 下,应该只有一个正常的键值"{AEB6717E-7E19-11d0-97EE-00C04FD91972}, 将其他的删除。

b 、运行输入cmd 回车在命令提示符下输入

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

如果怕输入错误的话,可以复制这条指令,然后在命令提示框点击左上角的c:\,使用下面的“编辑-粘贴”功能就不容易输错了。在飞速滚屏完全静止之后,别着急启动其他程序,先耐心等一会儿,因为此时dll们还在找位置。直到你的指示灯不闪了再做别的。

2、要是某特定程序运行后就这样,建议卸了那个程序后安装更新版本的或重装该程

序! 3.彻底解决是重装系统

下面是可能的几种EXPLORER.EXE出错的情况: 1. 软件问题(特别是右键第三方加载

项)

安装清华紫光输入法3.0版本有的时候会出现explorer.exe出错,取消清华紫光输入法,用其他输入法输入如果没有问题,可以判断为输入法问题。卸载清华紫光输入法,即可解决。

清华紫光输入法4.0版本未发现类似问题。

苹果美化版的rar惹的祸,把它卸载了暂时就没有这个错误了,你也可以看是不是安装了苹果美化版的rar,有的话,也可以卸载了来看一下

装了酒精120%或者酒精52%虚拟光驱,在番茄的系统中很容易出现explorer.exe错误。卸载有时候会解决问题

2. explorer.exe程序本身的原因检查explorer.exe的文件大小,正常情况下应该显示为237k或者238k,如果大小不一致,可以从别的机器上拷贝一个explorer.exe文件到本机,调用任务管理器,接入explorer.exe进程,然后新建任务拷贝新的文件到系统盘\WINNT目录下。

3. 可能为病毒原因(wc98pp.dll)

网络协议处理器 - 电子书编译工具Web Compiler相关。

wc98pp.dll文件本身并没有影响,很多计算机上都有此文件,但是当explorer.exe出错的时候,删除此文件可以解决问题,然后从注册表中搜索相关键值删除。

usign.dll,有人提到这个文件与wc98pp.dll两个文件类似,删除这两个文件可以清除IE中不断跳出小广告。在公司的计算机中未发现此文件。

4. 其他原因

计算机运行某个程序等待时间过长,比如读取数据,尤其是光盘或者外界设备的数据的时候,也会出现

explorer.exe出错,提示与上面的情况相同。

5. 系统内核错误

此类情况我暂时无法解决,重新安装系统。

6.内存问题

有人通过更换内存,解决了这个问题,所以这应该是个原因,不过如果这个出问题就比较麻烦了,所以先考虑前面几个原因

7.windows升级造成的

大家都知道我们用的是盗版xp,既然是盗版的,肯定会出现各种各样的错误.微软也不是sb,肯定会搞一些问题来惩罚我们,所以建议大家不要上网自动更新,并且把自动更新关掉(实际上这个更新没p用)

下面是从网上搜索到的一些关于此烦人错误的资料及解决方法

1.第三方加载项的问题

我以一般的途径从遇到explorer错误的人们得到信息。通常他们都这么叙述:" 当我在资源管理器中右键点击一个文件时系统提示explorer遇到错误需要关闭"或"当我尝试浏览文件夹的时候,我收到系统提示explorer遇到错误需要关闭" 。

通常,这些错误是由于第三方加载项没有正常工作所引起的

这些加载项负责创建一些选项当你在资源管理器右键点击一个文件时。一些第三方程序会添加他们自己的选项到这些菜单,而这有些时候会出现问题

如果你仔细看下面的图片,你会发现几个非常规的选项在这个右键菜单

上: "Send to Fax Recipient",

"Scan with Norton Antivirus", "TextPad" 和 "Winzip"。

如果想尝试寻找引起explorer错误的第三方加载项,你需要下载这个工具:ShellExView,

它会允许你查看和禁用加载项

解决办法:当你下载并运行它以后,ShellExView会显示出所有的安装在你的电脑上的加载项。你可以分类排序使所有第三方加载项示在一起。然后,选择所有第三方加载项并禁用

它们,并试着执行以前导致错误的操作(比如右键点击一个文件或浏览一个文件夹等等)

如果没有错误提示,就说明你所禁用的一个加载项造成了explorer错误。接

下来,通过每一次启用一个加载项并尝试之前引起错误的操作就可以找出引

起错误的第三方扩展了

ShellExView会显示出加载项的所有的额外信息, 比如版本号、公司名称。如果你希望继续

使用致使

explorer出错的加载项,请检查他的更新版本或联系他的客户支持

explorer出错的另一个原因是因为机器里内含病毒、木马或间谍广告程序。想检测电脑里

存在的病毒请使用专业的程序,比如江民、瑞星等杀毒软件;检测电脑里存在的间谍软件,我推荐下列程序:Microsoft Windows AntiSpyware (Beta)、Lavasoft's Ad-Aware、

Rose City Software's Spyware Medic或者Spybot's Search & Distroy。

ShellExView这个软件在附件里面有提供.

2.一些关于此问题的中文知识库文章

在“地址”框或“打开”框中键入地址时出现错误消息

桌面是白色的并且错误信息报告 Browseui.dll 中有“Windows 资源管理器”错误

错误信息:Explorer Caused an Invalid Page Fault in Module Browseui.dll(资源管理器导致模

块 Browseui.dll 中出现无效页面错误)

错误信息:Error Loading Explorer.exe You Must Reinstall Windows(加载 Explorer.exe 时出现错误,必须重新安装 Windows)

查看“我的电脑”中的内容时 Windows 资源管理器退出

在试图映射网络驱动器时 Windows 资源管理器退出并生成错误信息

尝试安装 Windows 2000 Service Pack 3 时出现错误信息

“Explorer.exe Has Generated Errors and Will Be Closed By Windows”(Explorer.exe 发生错误,将被 Windows 关闭)在关闭某个文件夹时,Explorer.exe 可能会生成一个应用程序错误尝试打开“网上邻居”时收到

“Windows Explorer Has Encountered a Problem and Needs to Close”

(Explorer.exe 发生错误,将被 Windows 关闭)错误消息

右键单击文件时出现错误信息,或是当在 Autodesk 或 Discreet 产品中打开某些文件

时发生问题

在 Windows XP 中试图打开“网上邻居”或“共享文档”时,“我的电脑”和 Windows 资源管理器意外

退出

Explorer.exe 在 Windows XP 中反复意外退出

3.怎样避免

使用Windows XP时间比较长后,有时运行会很不流畅,甚至会不响应鼠标键盘对操作。很多时候是系统的假死。和真正的死机不同,假死完全可以被“救活”。假死的根源在于explorer.exe(整个图形界面的驱动)。既然会假死,那就一定有解决方法,下面就为朋友们介绍一些拯救系统假死的方法。

第一招:当使用资源管理器打开新文件夹或用浏览器打开新页面不响应时,用“Win+D”或单击快速启动栏的显示桌面按钮,再在桌面上按F5或右键刷新即可。一般刷新3-5次后再把资源管理器或浏览器窗口还原就会恢复正常了。

第二招:这一招很灵,能对付大多数假死的情况。当任务管理器都打不开时,先把光驱弹出之后再弹入(千万不要在光驱里放光盘),鼠标指针旁会出现一个小光盘标志,这时就会唤起系统的知觉,这招可是屡试不爽!

第三招:最后的杀手锏,用组合键“Ctrl+Alt+Del”启动任务管理器,然后在“进程”选项卡中结束explorer.exe,整个桌面只剩一张壁纸,桌面图标和任务栏都没影了,然后在任务管理器的“文件→新建任务”中输入explorer.exe,即可恢复正常。这一招还可释放内存资源,一举两得。

照下面的方法可以明显减少假死可能性: 能不用右键菜单的时候就尽量不用,尽量使用热键如用F2重命名、用F5刷新等。Windows Media Player最好不用可视化效果,用了往往会卡机。真想用的话,微粒是最不容易卡机的,建议用“微粒”可视化效果。不要轻易使用内存整理软件,往往会越整理系统速度越慢。如果真想释放系统资源,注销当前用户再重新登录是最好的方式。说了这么多,大家也不妨试试这些方法。

4.有人提出的一个方法

关于EXPLORER.EXE出错解决方法,大家试试

把如下内容做成批处理文件,执行一下。explorer的问题基本上可以解决。

del c:\winnt\wc98pp.dll

del c:\windows\wc98pp.dll

regsvr32 actxprxy.dll /s

regsvr32 shdocvw.dll /s

regsvr32 mshtml.dll /s

regsvr32 urlmon.dll /s

regsvr32 msjava.dll /s

regsvr32 browseui.dll /s

应用程序错误该内存不能为read

应用程序错误该内存不能为read 悬赏分:30 |解决时间:2009-8-26 10:43 |提问者:lkjnc 瑞星卡卡上网安全助手和瑞星杀毒软件有些功能不能正常使用,当打开安检时就跳出RsMain.exe应用程序错误每次都是不同指令不同内存。该内存不能为read.使用漏洞扫描与修复时也同样跳出Ras.exe应用程序错误。每次单击确定还是取消,该程序就被关闭。还有其他操作等也有影响,经常跳出应用程序出错,比如不能卸载安装一些东西等,经常跳出这种提示,不知道该怎么办 最佳答案 这个好说...希望你不是临时用户... 一般出现这个现象的方面有,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了。 下面先说说硬件: 一般来说,内存出现问题的可能性并不大,主要方面是:内存条坏了、内存质量有问题,还有就是2个不同牌子不同容量的内存混插,也比较容易出现不兼容的情况,同时还要注意散热问题,特别是超频后。你可以使用MemTest 这个软件来检测一下内存,它可以彻底的检测出内存的稳定度。 假如你是双内存,而且是不同品牌的内存条混插或者买了二手内存时,出现这个问题,这时,你就要检查是不是内存出问题了或者和其它硬件不兼容。 如果都没有,那就从软件方面排除故障了。 一般原因是: 1、驱动不稳定,与系统不兼容,这最容易出现内存不能为Read 或者文件保护 2、系统安装了一个或者多个流氓软件,这出现IE 或者系统崩溃的机会也比较大,也有可能出现文件保护 3、系统加载的程序或者系统正在运行的程序之前有冲突,尤其是部分杀毒软件监控程序 4、系统本身存在漏洞,导致容易受到网络攻击。 5、病毒问题也是主要导致内存不能为Read、文件保护、Explorer.exe 错误……

解决XXXX指令引用的XXXX内存,该内存不能为read 的方法

解决"XXXX指令引用的XXXX内存,该内存不能为read" 的方法 出现这个现象有方面的,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了。 一:先说说硬件: 一般来说,电脑硬件是很不容易坏的。内存出现问题的可能性并不大(除非你的内存真的是杂牌的一塌徒地),主要方面是:1。内存条坏了(二手内存情况居多)、2。使用了有质量问题的内存,3。内存插在主板上的金手指部分灰尘太多。4。使用不同品牌不同容量的内存,从而出现不兼容的情况。5。超频带来的散热问题。你可以使用MemTest 这个软件来检测一下内存,它可以彻底的检测出内存的稳定度。 二、如果都没有,那就从软件方面排除故障了。 先说原理:内存有个存放数据的地方叫缓冲区,当程序把数据放在缓冲区,需要操作系统提供的“功能函数”来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。这就是“动态内存分配”,内存地址也就是编程中的“光标”。内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。当分配失败时系统函数会返回一个0值,这时返回值“0”已不表示新启用的光标,而是系统向应用程序发出的一个通知,告知出现了错误。作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的“健壮性”。若应用程序没有检查这个错误,它就会按照“思维惯性”认为这个值是给它分配的可用光标,继续在之后的执行中使用这块内存。真正的0地址内存区储存的是计算机系统中最重要的“中断描述符表”,绝对不允许应用程序使用。在没有保护机制的操作系统下(如DOS),写数据到这个地址会导致立即当机,而在健壮的操作系统中,如Windows等,这个操作会马上被系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就会出现上述的内存不能为“read”错误,并指出被引用的内存地址为“0x00000000“。内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中“安装”的病毒程序),更改了大量的系统参数和系统档案之后。 在使用动态分配的应用程序中,有时会有这样的情况出现:程序试图读写一块“应该可用”的内存,但不知为什么,这个预料中可用的光标已经失效了。有可能是“忘记了”向操作系统要求分配,也可能是程序自己在某个时候已经注销了这块内存而“没有留意”等等。注销了的内存被系统回收,其访问权已经不属于该应用程序,因此读写操作也同样会触发系统的保护机制,企图“违法”的程序唯一的下场就是被操作终止执行,回收全部资源。计算机世界的法律还是要比人类有效和严厉得多啊!像这样的情况都属于程序自身的BUG,你往往可在特定的操作顺序下重现错误。无效光标不一定总是0,因此错误提示中的内存地址也不一定为“0x00000000”,而是其它随机数字。 首先建议: 1、检查系统中是否有木马或病毒。这类程序为了控制系统往往不负责任地修改系统,从而导致操作系统异常。平常应加强信息安全意识,对来源不明的可执行程序绝不好奇。 2、更新操作系统,让操作系统的安装程序重新拷贝正确版本的系统档案、修正系统参数。有时候操作系统本身也会有BUG,要注意安装官方发行的升级程序。 3、尽量使用最新正式版本的应用程序、Beta版、试用版都会有BUG。 4、删除然后重新创建 Winnt\System32\Wbem\Repository 文件夹中的文件:在桌面上右击我的电脑,然后单击管理。在"服务和应用程序"下,单击服务,然后关闭并停止 Windows Management Instrumentation 服务。删除 Winnt\System32\Wbem\Repository 文件夹中的所有文件。(在删除前请创建这些文件的备份副本。)打开"服务和应用程序",单击服

内存不能为read、written解决办法

内存不能为read/written解决办法 一、硬件的可能性是比较小的,如果是硬件,那就应该是内存条跟主机不兼容的问题导致的如果能排除硬件上的原因(内存条不兼容,更换内存)往下看: 二、系统或其它软件引起的,可用下述方法处理:系统本身有问题,及时安装官方发行的补丁,必要时重装系统。病毒问题:杀毒。杀毒软件与其它软件冲突:卸载有问题的软件。显卡、声卡驱动是否正确安装或者是否被恶意覆盖否?重新安装显卡声卡驱动。 1、使用系统自带的sfc命令,修复受到损坏的系统文件恢复到正常状态。 开始→运行→输入cmd,打开“命令提示符”窗口→输入字符串命令 sfc/scannow→回车→耐心等待命令程序对每个系统文件搜索扫描→一旦发现系统文件的版本不正确或者系统文件已经损坏→它就能自动弹出提示界面→要求插入Windows系统的安装光盘→从中提取正常的系统文件来替代不正常的系统文件→达到修复系统文件的目的→最后重新启动计算机。 2、安装过的Domino这程序导致有问题,你可以在开始→运行→msconfig→启动项目→关闭Domino启动项→如果关闭不了→可以用卡卡助手之类的系统设置软件把它强行关掉→如果还是不行的→证明你系统中毒→那就重新安装系统彻底解决。 三、浏览器出现内存不能读、写的提示: 1、运行→regedit→进入注册表, 在→ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\E xplorer\ShellExecuteHooks 这个位置有一个正常的键值{AEB6717E-7E19-11d0-97EE-00C04FD91972}, 将其他的删除。 2、打开CMD窗口输入如下命令: for %i in (%windir%\system32\*.dll) do regsvr32.exe /s %i 回车 for %i in (%windir%\system32\*.ocx) do regsvr32.exe /s %i 回车 两条分别运行完成后重启机器。 四、如果以上方法无法解决只能使用最后一招: 完全注册dll:打开“运行”输入→cmd→回车 然后把下面这行字符复制到黑色cmd框里面去回车等待dll文件全部注册完成就关闭可以了,为防止输入错误可以复制这条指令,然后在命令提示符后击鼠标右键→粘贴→回车,耐心等待,直到屏幕滚动停止。

explorer.exe该内存不能为read等报错及解决方法

原因是系统文件发生错误导致的EXPLOER进程问题 偶尔出现很正常,因为本身WINDOWS的各种未知BUG就很多!经常出现请参考以下:1: a 、运行regedit进入注册表, 在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell ExecuteHooks 下,应该只有一个正常的键值"{AEB6717E-7E19-11d0-97EE-00C04FD91972}, 将其他的删除。 b 、运行输入cmd 回车在命令提示符下输入 for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1 如果怕输入错误的话,可以复制这条指令,然后在命令提示框点击左上角的c:\,使用下面的“编辑-粘贴”功能就不容易输错了。在飞速滚屏完全静止之后,别着急启动其他程序,先耐心等一会儿,因为此时dll们还在找位置。直到你的指示灯不闪了再做别的。 2、要是某特定程序运行后就这样,建议卸了那个程序后安装更新版本的或重装该程序! 3.彻底解决是重装系统 下面是可能的几种EXPLORER.EXE出错的情况: 1. 软件问题(特别是右键第三方加载项) 安装清华紫光输入法3.0版本有的时候会出现explorer.exe出错,取消清华紫光输入法,用其他输入法输入如果没有问题,可以判断为输入法问题。卸载清华紫光输入法,即可解决。 清华紫光输入法4.0版本未发现类似问题。 苹果美化版的rar惹的祸,把它卸载了暂时就没有这个错误了,你也可以看是不是安装了苹果美化版的rar,有的话,也可以卸载了来看一下 装了酒精120%或者酒精52%虚拟光驱,在番茄的系统中很容易出现explorer.exe错误。卸载有时候会解决问题 2. explorer.exe程序本身的原因 检查explorer.exe的文件大小,正常情况下应该显示为237k或者238k,如果大小不一致,可以从别的机器上拷贝一个explorer.exe文件到本机,调用任务管理器,接入explorer.exe进程,然后新建任务拷贝新的文件到系统盘\WINNT目录下。 3. 可能为病毒原因(wc98pp.dll) 网络协议处理器 - 电子书编译工具Web Compiler相关。 wc98pp.dll文件本身并没有影响,很多计算机上都有此文件,但是当explorer.exe出错的时候,删除此文件可以解决问题,然后从注册表中搜索相关键值删除。 usign.dll,有人提到这个文件与wc98pp.dll两个文件类似,删除这两个文件可以清除IE中不断跳出小广告。在公司的计算机中未发现此文件。 4. 其他原因

该内存不能为read

该内存不能为“read”的几个解决方案 【文章一】 使用Windows操作系统的人有时会遇到这样的错误信息: 「“0X????????”指令引用的“0x00000000”内存,该内存不能为“read”或“written”」,然后应用程序被关闭。 如果去请教一些「高手」,得到的回答往往是「Windows就是这样不稳定」之类的义愤和不屑。其实,这个错误并不一定是Windows不稳定造成的。本文就来简单分析这种错误的一般原因。 一、应用程序没有检查内存分配失败 程序需要一块内存用以储存数据时,就需要使用操作系统提供的「功能函数」来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。这就是「动态内存分配」,内存地址也就是编程中的「光标」。内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。当分配失败时系统函数会返回一个0值,这时返回值「0」已不表示新启用的游标,而是系统向应用程序发出的一个通知,告知出现了错误。作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的「健壮性」。若应用程序没有检查这个错误,它就会按照「思维惯性」认为这个值是给它分配的可用游标,继续在之后的执行中使用这块内存。真正的0地址内存区储存的是计算机系统中最重要的「中断描述符表」,绝对不允许应用程序使用。在没有保护机制的操作系统下(如DOS),写数据到这个地址会导致立即当机,而在健壮的操作系统中,如Windows等,这个操作会马上被系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就会出现上述的「写内存」错误,并指出被引用的内存地址为「0x00000000」。内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中「安装」的病毒程序),更改了大量的系统参数和系统档案之后。 二、应用程序由于自身BUG引用了不正常的内存光标 在使用动态分配的应用程序中,有时会有这样的情况出现:程序试突读写一块「应该可用」的内存,但不知为什么,这个预料中可用的光标已经失效了。有可能是「忘记了」向操作系统要求分配,也可能是程序自己在某个时候已经注销了这块内存而「没有留意」等等。注销了的内存被系统回收,其访问权已经不属于该应用程序,因此读写操作也同样会触发系统的保护机制,企图「违法」的程序唯一的下场就是被操作终止执行,回收全部资源。计算机世界的法律还是要比人类有效和严厉得多啊!像这样的情况都属于程序自身的BUG,你往往可在特定的操作顺序下重现错误。无效光标不一定总是0,因此错误提示中的内存地址也不一定为「0x00000000」,而是其它随机数字。如果系统经常有所提到的错误提示,下面的建议可能会有说明: 1.检视系统中是否有木马或病毒。这类程序为了控制系统往往不负责任地修改系统, 从而导致操作系统异常。平常应加强信息安全意识,对来源不明的可执行程序绝不好奇。2.更新操作系统,让操作系统的安装程序重新拷贝正确版本的系统档案、修正系统参数。有时候操作系统本身也会有BUG,要注意安装官方发行的升级程序。 3.试用新版本的应用程序。 Mode: 将虚拟内存撤换

0x00401ed3指令引用的0xffffffff内存。该内存不能为read

内存不能为read/written 问题的简单解决办法:(原创答案,欢迎分享→请活学活用→仅供参考): 一、硬件的可能性是比较小的,如果是硬件,那就应该是内存条跟主机不兼容的问题导致的如果能排除硬件上的原因(内存条不兼容,更换内存)往下看:二、系统或其它软件引起的,可用下述方法处理:系统本身有问题,及时安装官方发行的补丁,必要时重装系统。病毒问题:杀毒。杀毒软件与其它软件冲突:卸载有问题的软件。显卡、声卡驱动是否正确安装或者是否被恶意覆盖否?重新安装显卡声卡驱动。 1、使用系统自带的sfc命令,修复受到损坏的系统文件恢复到正常状态。 开始→运行→输入cmd,打开“命令提示符”窗口→输入字符串命令 sfc/scannow→回车→耐心等待命令程序对每个系统文件搜索扫描→一旦发现系统文件的版本不正确或者系统文件已经损坏→它就能自动弹出提示界面→要求插入Windows系统的安装光盘→从中提取正常的系统文件来替代不正常的系统文件→达到修复系统文件的目的→最后重新启动计算机。 2、安装过的Domino这程序导致有问题,你可以在开始→运行→msconfig→启动项目→关闭Domino启动项→如果关闭不了→可以用卡卡助手之类的系统设置软件把它强行关掉→如果还是不行的→证明你系统中毒→那就重新安装系统彻底解决。 三、浏览器出现内存不能读、写的提示: 1、运行→regedit→进入注册表, 在→ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\E xplorer\ShellExecuteHooks 这个位置有一个正常的键值{AEB6717E-7E19-11d0-97EE-00C04FD91972}, 将其他的删除。 2、打开CMD窗口输入如下命令: for %i in (%windir%\system32\*.dll) do regsvr32.exe /s %i 回车 for %i in (%windir%\system32\*.ocx) do regsvr32.exe /s %i 回车 两条分别运行完成后重启机器。 四、如果以上方法无法解决只能使用最后一招: 完全注册dll:打开“运行”输入→cmd→回车 然后把下面这行字符复制到黑色cmd框里面去回车等待dll文件全部注册完成就关闭可以了,为防止输入错误可以复制这条指令,然后在命令提示符后击鼠标右键→粘贴→回车,耐心等待,直到屏幕滚动停止。 (下面是要运行的代码): for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1 完成后重新启动机器。 五、如果你电脑里面存在NET.Framework这个微软的组件服务而你又不使用它→那么卸载这个服务可能会解决问题:开始→设置→控制面板→添加删除程序→NET.Framework→删除(如果你必须使用就重新启动电脑后再次安装 NET.Framework)。 六、关闭这个报告(治标不治本):

电脑显示0X000000该内存不能为read或者written的解决方法

电脑显示0X000000该内存不能为read或者written 的解决方法 一般浏览器经常遇到这种情况 ,浏览器有错误,需要重置浏览器, (1).1在“开始“菜单中打开“运行“窗口,在其中输入“regsvr32actxprxy.dll“,然后“确定“,接着会出现一个信息对话框“DllRegisterServerinactxprxy.dllsucceeded“,再次点击“确定“。 2再次打开“运行“窗口,输入“regsvr32shdocvw.dll 3再次打开“运行“窗口,输入“regsvr32oleaut32.dll 4再次打开“运行“窗口,输入“regsvr32actxprxy.dll 5再次打开“运行“窗口,输入“regsvr32mshtml.dll 6再次打开“运行“窗口,输入“regsvr32msjava.dll 7再次打开“运行“窗口,输入“regsvr32browseui.dll 8再次打开“运行“窗口,输入“regsvr32urlmon.dll (2) :修复或升级浏览器,同时打上系统补丁。如果你的浏览器是IE的话 确定你的IE升级到了6.0。 下面详细解答下关于这一类问题的原因,偶尔出现无所谓 我所熟悉的0X000000该内存不能为read或者written的解决方法 硬件: 电脑硬件是很不容易坏的。内存出现问题的可能性并不大(除非你的内存真的是杂牌的一塌徒地),主要

方面是:1。内存条坏了(二手内存情况居多)、2。使用了有质量问题的内存,3。内存插在主板上的金手指部分灰尘太多。4。使用不同品牌不同容量的内存,从而出现不兼容的情况。5。超频带来的散热问题。你可以使用MemTest 这个软件来检测一下内存,它可以彻底的检测出内存的稳定度。 二、如果都没有,那就从软件方面排除故障了。 原理:内存有个存放数据的地方叫缓冲区,当程序把数据放在缓冲区,需要操作系统提供的“功能函数”来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。这就是“动态内存分配”,内存地址也就是编程中的“光标”。内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。当分配失败时系统函数会返回一个0值,这时返回值“0”已不表示新启用的光标,而是系统向应用程序发出的一个通知,告知出现了错误。作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的“健壮性”。若应用程序没有检查这个错误,它就会按照“思维惯性”认为这个值是给它分配的可用光标,继续在之后的执行中使用这块内存。真正的0地址内存区储存的是计算机系统中最重要的“中断描述符表”,绝对不允许应用程序使用。在没有保护机制的操作系统下(如DOS),写数据到这个地址会导致立即当机,而在健壮的操作系统中,如Windows等,这个操作会马上被系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就会出现上述的内存不能为“read”错误,并指出被引用的内存地址为“0x00000000“。内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中“安装”的病毒程序),更改了大量的系统参数和系统档案之后。 在使用动态分配的应用程序中,有时会有这样的情况出现:程序试图读写一块“应该可用”的内存,但不知为什么,这个预料中可用的光标已经失效了。有可能是“忘记了”向操作系统要求分配,也可能是程序自己在某个时候已经注销了这块内存而“没有留意”等等。注销了的内存被系统回收,其访问权已经不属于该应用程序,因此读写操作也同样会触发系统的保护机制,企图“违法”的程序唯一的下场就是被操作终止执行,回收全部资源。计算机世界的法律还是要比人类有效和严厉得多啊!像这样的情况都属于程序自身的BUG,你往往可在特定的操作顺序下重现错误。无效光标不一定总是0,因此错误提示中的内存地址也不一定为“0x00000000”,而是其它随机数字。

内存报错该内存不能为read或write

使用操作系统地人有时会遇到这样地错误信息:“????????指令引用地内存,该内存不能为或”,然后应用程序被关闭.其实,这个错误并不一定是不稳定造成地.本文就来简单分析这种错误地常见原因. 一、应用程序没有检查内存分配失败 程序需要一块内存用以保存数据时,就需要调用操作系统提供地“功能函数”来申请,如果内存分配成功,函数就会将所新开辟地内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存.这就是“动态内存分配”,内存地址也就是编程中地“指针”. 内存不是永远都招之即来、用之不尽地,有时候内存分配也会失败.当分配失败时系统函数会返回一个值,这时返回值“”已不表示新启用地指针,而是系统向应用程序发出地一个通知,告知出现了错误.作为应用程序,在每一次申请内存后都应该检查返回值是否为,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序地“健壮性”. 若应用程序没有检查这个错误,它就会按照“思维惯性”认为这个值是给它分配地可用指针,继续在之后地运行中使用这块内存.真正地地址内存区保存地是计算机系统中最重要地“中断描述符表”,绝对不允许应用程序使用.在没有保护机制地操作系统下(如),写数据到这个地址会导致立即死机,而在健壮地操作系统中,如等,这个操作会马上被系统地保护机制捕获,其结果就是由操作系统强行关闭出错地应用程序,以防止其错误扩大.这时候,就会出现上述地“写内存”错误,并指出被引用地内存地址为“”. 内存分配失败故障地原因很多,内存不够、系统函数地版本不匹配等都可能有影响.因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中“安装”地病毒程序),更改了大量地系统参数和系统文件之后. 二、应用程序由于自身引用了不正常地内存指针 在使用动态分配地应用程序中,有时会有这样地情况出现:程序试图读写一块“应该可用”地内存,但不知为什么,这个预料中可用地指针已经失效了.有可能是“忘记了”向操作系统要求分配,也可能是程序自己在某个时候已经注销了这块内存而“没有留意”等等.注销了地内存被系统回收,其访问权已经不属于该应用程序,因此读写操作也同样会触发系统地保护机制,企图“违法”地程序唯一地下场就是被操作终止运行,回收全部资源.计算机世界地法律还是要比人类有效和严厉得多啊! 像这样地情况都属于程序自身地,你往往可在特定地操作顺序下重现错误.无效指针不一定总是,因此错误提示中地内存地址也不一定为“”,而是其他随机数字. 如果系统经常有所提到地错误提示,下面地建议可能会有帮助: .查看系统中是否有木马或病毒.这类程序为了控制系统往往不负责任地修改系统,从而导致操作系统异常.平常应加强信息安全意识,对来源不明地可执行程序绝不好奇. .更新操作系统,让操作系统地安装程序重新拷贝正确版本地系统文件、修正系统参数.有时

内存不能为read的解决办法

运行某些程序的时候,有时会出现内存错误的提示,然后该程序就关闭。 “0x????????”指令引用的“0x????????”内存。该内存不能为“read”。 “0x????????”指令引用的“0x????????”内存,该内存不能 为“written”。 以上的情况相信大家都应该见到过,甚至说一些网友因为不爽于这个经常出现的错误提示而屡次重装系统。相信普通用户应该不会理解那些复杂的十六进制代码。 出现这个现象有方面的,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了。 一:先说说硬件: 一般来说,电脑硬件是很不容易坏的。内存出现问题的可能性并不大(除非你的内存真的是杂牌的一塌徒地),主要方面是:1。内存条坏了(二手内存情况居多)、2。使用了有质量问题的内存,3。内存插在主板上的金手指部分灰尘太多。4。使用不同品牌不同容量的内存,从而出现不兼容的情况。5。超频带来的散热问题。你可以使用MemTest这个软件来检测一下内存,它可以彻底的检测出内存的稳定度。 二、如果都没有,那就从软件方面排除故障了。 先说原理:内存有个存放数据的地方叫缓冲区,当程序把数据放在缓冲区,需要操作系统提供的“功能函数”来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。这就是“动态内存分配”,内存地址也就是编程中的“光标”。内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。当分配失败时系统函数会返回一个0值,这时返回值“0”已不表示新启用的光标,而是系统向应用程序发出的一个通知,告知出现了错误。作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的“健壮性”。若应用程序没有检查这个错误,它就会按照“思维

解决0x000000该内存不能为read的方法

当我们正在使用IE6.0或者是7.0,升级到了8.0.突然间我们的IE浏览器打开的时候会出现下面 这个时候不管是我们修改注册表还是重启都不能解决问题 我们不要着急这是因为我们升级的时候新的IE8会有漏洞就是我们说的BUG。这时候就是你还装了一款其他的浏览器,你也是打不开的哦。不要急,我们把IE8给卸载了,这里的卸载就是给IE8直接降级到6.0或者是7.0,之后就可以打开了OK 以下同样也是这样的问题 现在有很多人在使用donghai制作的电脑公司ghost版的系统,经常会出现“0X000000该内存不能为read”的对话框,作者在最新发布的5。1版本中提到已经完美解决了这个问题,但事实上问题依然存在,只是比4。1的版本有所改进罢了,如何解决这一烦人的问题呢?我们先来认识一下这个问题吧: 出现这个现象有方面的,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了。一:先说说硬件: 一般来说,电脑硬件是很不容易坏的。内存出现问题的可能性并不大(除非你的内存真的是杂牌的一塌徒地),主要方面是:1。内存条坏了(二手内存情况居多)、2。使用了有质量问题的内存,3。内存插在主板上的金手指部分灰尘太多。4。使用不同品牌不同容量的内存,从而出现不兼容的情况。5。超频带来的散热问题。你可以使用MemTest 这个软件来检测一下内存,它可以彻底的检测出内存的稳定度。 二、如果都没有,那就从软件方面排除故障了。

先说原理:内存有个存放数据的地方叫缓冲区,当程序把数据放在缓冲区,需要操作系统提供的“功能函数”来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。这就是“动态内存分配”,内存地址也就是编程中的“光标”。内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。当分配失败时系统函数会返回一个0值,这时返回值“0”已不表示新启用的光标,而是系统向应用程序发出的一个通知,告知出现了错误。作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的“健壮性”。若应用程序没有检查这个错误,它就会按照“思维惯性”认为这个值是给它分配的可用光标,继续在之后的执行中使用这块内存。真正的0地址内存区储存的是计算机系统中最重要的“中断描述符表”,绝对不允许应用程序使用。在没有保护机制的操作系统下(如DOS),写数据到这个地址会导致立即当机,而在健壮的操作系统中,如Windows等,这个操作会马上被系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就会出现上述的内存不能为“read”错误,并指出被引用的内存地址为“0x00000000“。内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中“安装”的病毒程序),更改了大量的系统参数和系统档案之后。 在使用动态分配的应用程序中,有时会有这样的情况出现:程序试图读写一块“应该可用”的内存,但不知为什么,这个预料中可用的光标已经失效了。有可能是“忘记了”向操作系统要求分配,也可能是程序自己在某个时候已经注销了这块内存而“没有留意”等等。注销了的内存被系统回收,其访问权已经不属于该应用程序,因此读写操作也同样会触发系统的保护机制,企图“违法”的程序唯一的下场就是被操作终止执行,回收全部资源。计算机世界的法律还是要比人类有效和严厉得多啊!像这样的情况都属于程序自身的BUG,你往往可在特定的操作顺序下重现错误。无效光标不一定总是0,因此错误提示中的内存地址也不一定为“0x00000000”,而是其它随机数字。

该内存不能为read的解决办法内存不能为read修复工具(有方法)

该内存不能为read的解决办法:内存不能为read修复工具 相信我们中的很多使用电脑的人都碰到过,有时候咚的一声弹出一个对话框,该内存不能为read错误提示, ,然后软件关闭,让人摸不着头脑。本站为你列出内存不能为read的原因和提供内存不能为read修复工具下载: 一、内存不能为read的原因 1、驱动程序不稳定,或者与操作系统、计算机硬件不兼容,极易引发内存不能为read错误; (由于开发者水平差异较大,个别RP和技术都很差的程序员也开始写驱动程序了,小则引起“内存不能为read”,大则引发机器蓝屏,最后还把责任推卸给别 人。)D805AB914BA4FEF0BA3473226E713E6A 2、不小心安装了流氓软件或IE流氓插件; 3、正在加载的程序与已经运行的发生冲突,如有的杀毒软件实时监控程序,会和其它杀毒软件争夺系统控制权,导致内存不能为read; 4、感染了病毒; 5、玩游戏时出现内存不能为Read,则是因为显卡驱动不匹配; 6、夏天时硬件过热,散热不好,导致内存故障,不能为Read; 7、内存条与主板兼容性问题,导致内存不能为Read。 https://www.360docs.net/doc/6a3019251.html,/html/syjq/6543.html 内存不能为read相应解决办法: 如果是炎热夏季,打开空调或风扇,通风散热; 如果是新买的机器或内存条,新安装的驱动程序,尝试重新换一个,或者重插一遍,重新安装; 使用杀毒软件查毒杀毒; 更新软件,升级到最新版本。 二、内存不能为read修复工具下载 小黑内存不能为read修复工具是针对市面上很多软件本身原因导致的内存不能为read错误 大多数因素都是Windows系统出现内存错误使用Windows 操作系统的人有时会遇到这样的错误信息:“0X????????指令引用的0x00000000 内存,该内存不能written”,然后应用程序被关闭打鱼机。 内存不能为read修复工具通过处理调用CMD指令逐步恢复此BUG,很好的解决了因软件或者系统本身原因产生的不能为read错误。 小黑内存不能为read修复工具1.8791 K天空软件站 内存不能为read修复工具3.310 K华军软件园

内存不能为read处理

我们在计算机系统中运行一些容量较大的程序或者游戏时,系统常常会自动弹出“xx内存不能为read或written”的错误提示,遇到这种故障信息时,我们该如何才能将它有效排除,同时确保下次运行容量较大的程序或者游戏时,系统不会再次出现系统内存读写错误呢?事实上,当我们不幸遭遇上面的故障信息时,我们可以尝试按照如下步骤进行依次排查: 移除无效插件程序 在上网冲浪的过程中,许多插件程序会偷偷地安装到计算机系统中,而不少插件程序往往都有防删除的功能,因此这些插件很容易与其他的应用程序发生冲突,从而间接地引起系统内存读写错误的现象。为了给那些大容量的应用程序或游戏提供一个干净、稳定的工作环境,我们最好定期使用类似360安全卫士这样的程序,来查看系统是否被偷偷安装了各种无效的垃圾插件程序,一旦发现的话,那可以直接将它们从系统中及时卸载干净。 手工修复系统服务 与系统内存读写操作有关的Windows Management Instrumentation服务要是发生错误的话,也会导致系统弹出内存读写错误的提示,所以当我们遇到这种错误现象时,可以尝试手工修复一下Windows Management Instrumentation服务,下面就是具体的修复步骤: 首先用鼠标右键单击系统桌面中的“我的电脑”图标,从弹出的快捷菜单中执行“管理”命令,打开本地系统的计算机管理窗口,在该窗口的左侧显示区域,依次展开“服务和应用程序”/“服务”选项,在对应“服务”选项所在的右侧显示区域中,找到Windows Management Instrumentation服务,并用鼠标右键单击该服务选项,从弹出的快捷菜单中执行“属性”命令,打开如图所示的服务属性设置界面; 其次在该设置界面的“常规”标签页面中,单击“停止”按钮,将Windows Management Instrumentation服务暂时停止运行。之后,打开计算机系统的资源管理器窗口,在该窗口中依次展开“Windows”、“ssystem32”、“wbem”、“repository”文件夹,然后将“repository”文件夹窗口中的所有文件进行一下备份,备份完成后将该文件夹中的所有内容全部清除掉; 接下来,重新启动一下计算机系统,待系统启动成功后,按前面操作打开Windows Management Instrumentation服务的属性设置界面,单击该界面中的“启动”按钮,相信这么一来Windows Management Instrumentation服务就能正常运行了。 修复系统损坏文件 如果计算机系统不小心感染了病毒或者发生了误删除操作,那么与系统内存读写操作有关的系统文件很可能受到损坏,而这些系统文件一旦受到损坏的话,那么我们就很容易遭遇内存读写故障提示了。所以,我们一旦碰到内存读写错误的提示时,不妨按照如下步骤修复一下系统,看看系统是否存在损坏的文件: 首先使用最新版本的杀毒软件,来对计算机系统进行彻底地病毒查杀操作,因为计算机系统一旦感染了病毒而不进行清除的话,我们即使修复了系统文件,病毒仍然有可能会继续破坏系统文件,所以及时使用杀毒软件来将计算机中的病毒全部清除干净,可以确保系统文件不

内存不能为read修复方法 解决内存不能为read

内存不能为read修复方法解决内存不能为read 发布时间:2011-11-13 10:14作者:电脑百事网来源:https://www.360docs.net/doc/6a3019251.html,1939 次阅读 内存不能为read,最近挺多网友电脑出现这样的问题,内存不能为read怎么解决,建议先了解一下是如何产生内存不能读,以后碰到类似的才不会困惑。一般如果是玩游戏出现有可能该游戏软件冲突,建议卸载重新安装。 如果你是打开IE出现的有可能是ie应用程序访问内存出错或者某些文件丢失造成的 1 、右击桌面上“我的电脑”→属性→高级→错误报告→错误汇报→勾选“禁用错误汇报”→“但在发生严重错误时通知我”复选框→确定。这样处理对于一些小错误,Windows XP就不会弹出错误提示了。 2、如果不行彻底关闭错误报告服务。开始→运行中输入→services.msc→打开“服务”窗口→找到“Error Reporting Service”→打开“Error Reporting Service的属性”对话框→将“启动类型”改为“已禁用”→确定后重新启动系统。(此项目关闭的注册表方式:开始→运行→输入regedit→确定→找到HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionAeDebug]中的Auto=0改成Auto=1)、重要提示:不要只看这个错误提示的指令代码,而是要看:出这个提示框的上面蓝色条状部分提示的是XXX.EXE那个位置是什么程序,就大体定位引起出错或者冲突的主要原因了,对症下药就能解决。简单有效的处理方法是看错误提示,哪一个软件引起的冲突就卸载那个软件,重新启动机器以后首先关闭杀毒软件,重新运行安装。 如果不能解决最好是卸载重新更新ie浏览器,平时注意定期清理系统垃圾,ie缓存。 关于内存不能READ的解决方案 运行某些程序的时候,有时会出现内存错误的提示,然后该程序就关闭。 “0x????????”指令引用的“0x????????”内存。该内存不能为“read”。 “0x????????”指令引用的“0x????????”内存,该内存不能为“written”。 https://www.360docs.net/doc/6a3019251.html,电脑百事网,最好的电脑配置网! 一般出现这个现象有方面的,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了。 内存不能为read故障分析 硬件方面: 一般来说,内存出现问题的可能性并不大,主要方面是:内存条坏了、内存质量有问题,还有就是2个不同牌子不同容量的内存混插,也比较容易出现不兼容的情况,同时还要注意散热问题,特别是超频后。你可以使用MemTest 这个软件来检测一下内存,它可以彻底的检测出内存的稳定度。

该内存不能为read解决方法

计算机系统中运行一些容量较大的程序或者游戏时,系统常常会自动弹出“xx内存不能为read或written”的错误提示,遇到这种故障信息时,我们该如何才能将它有效排除,同时确保下次运行容量较大的程序或者游戏时,系统不会再次出现系统内存读写错误呢?事实上,当我们不幸遭遇上面的故障信息时,我们可以尝试按照如下步骤进行依次排查:移除无效插件程序 在上网冲浪的过程中,许多插件程序会偷偷地安装到计算机系统中,而不少插件程序往往都有防删除的功能,因此这些插件很容易与其他的应用程序发生冲突,从而间接地引起系统内存读写错误的现象。为了给那些大容量的应用程序或游戏提供一个干净、稳定的工作环境,我们最好定期使用类似360安全卫士这样的程序,来查看系统是否被偷偷安装了各种无效的垃圾插件程序,一旦发现的话,那可以直接将它们从系统中及时卸载干净。 手工修复系统服务 与系统内存读写操作有关的Windows Management Instrumentation服务要是发生错误的话,也会导致系统弹出内存读写错误的提示,所以当我们遇到这种错误现象时,可以尝试手工修复一下Windows Management Instrumentation服务,下面就是具体的修复步骤: 首先,用鼠标右键单击系统桌面中的“我的电脑”图标,从弹出的快捷菜单中执行“管理”命令,打开本地系统的计算机管理窗口,在该窗口的左侧显示区域,依次展开“服务和应用程序”/“服务”选项,在对应“服务”选项所在的右侧显示区域中,找到Windows Management Instrumentation服务,并用鼠标右键单击该服务选项,从弹出的快捷菜单中执行“属性”命令,打开服务属性设置界面; 其次在该设置界面的“常规”标签页面中,单击“停止”按钮,将Windows Management Instrumentation服务暂时停止运行。之后,打开计算机系统的资源管理器窗口,在该窗口中依次展开“Windows”、“system32”、“wbem”、“repository”文件夹,然后将“repository”文件夹窗口中的所有文件进行一下备份,备份完成后将该文件夹中的所有内容全部清除掉; 接下来,重新启动一下计算机系统,待系统启动成功后,按前面操作打开Windows Management Instrumentation服务的属性设置界面,单击该界面中的“启动”按钮,相信这么一来Windows Management Instrumentation服务就能正常运行了。 修复系统损坏文件 如果计算机系统不小心感染了病毒或者发生了误删除操作,那么与系统内存读写操作有关的系统文件很可能受到损坏,而这些系统文件一旦受到损坏的话,那么我们就很容易遭遇内存读写故障提示了。所以,我们一旦碰到内存读写错误的提示时,不妨按照如下步骤修复一下系统,看看系统是否存在损坏的文件:

该内存不能为read或written的原因及解决方案

该内存不能为read或written的原因及解决方案 使用Windows操作系统的人有时会遇到这样的错误信息: 「“0X????????”指令引用的“0x”内存,该内存不能为“read”或“written”」,然后应用程序被关闭。 如果去请教一些「高手」,得到的回答往往是「Windows就是这样不稳定」之类的义愤和不屑。其实,这个错误并不一定是Windows不稳定造成的。本文就来简单分析这种错误的一般原因。 一、应用程序没有检查内存分配失败 程序需要一块内存用以储存数据时,就需要使用操作系统提供的「功能函数」来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。这就是「动态内存分配」,内存地址也就是编程中的「光标」。内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。当分配失败时系统函数会返回一个0值,这时返回值「0」已不表示新启用的游标,而是系统向应用程序发出的一个通知,告知出现了错误。作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的「健壮性」。若应用程序没有检查这个错误,它就会按照「思维惯性」认为这个值是给它分配的可用游标,继续在之后的执行中使用这块内存。真正的0地址内存区储存的是计算机系统中最重要的「中断描述符表」,绝对不允许应用程序使用。在没有保护机制的操作系统下(如DOS),写数据到这个地址会导致立即当机,而在健壮的操作系统中,如Windows等,这个操作会马上被系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就会出现上述的「写内存」错误,并指出被引用的内存地址为「0x」。内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中「安装」的病毒程序),更改了大量的系统参数和系统档案之后。 二、应用程序由于自身BUG引用了不正常的内存光标 在使用动态分配的应用程序中,有时会有这样的情况出现:程序试突读写一块「应该可用」的内存,但不知为什么,这个预料中可用的光标已经失效了。有可能是「忘记了」向操作系统要求分配,也可能是程序自己在某个时候已经注销了这块内存而「没有留意」等等。注销了的内存被系统回收,其访问权已经不属于该应用程序,因此读写操作也同样会触发系统的保护机制,企图「违法」的程序唯一的下场就是被操作终止执行,回收全部资源。计算机世界的法律还是要比人类有效和严厉得多啊!像这样的情况都属于程序自身的BUG,你往往可在特定的操作顺序下重现错误。无效光标不一定总是0,因此错误提示中的内存地址也不一定为「0x」,而是其它随机数字。如果系统经常有所提到的错误提示,下面的建议可能会有说明: 1.检视系统中是否有木马或病毒。这类程序为了控制系统往往不负责任地修改系统, 从而导致操作系统异常。平常应加强信息安全意识,对来源不明的可执行程序绝不好奇。2.更新操作系统,让操作系统的安装程序重新拷贝正确版本的系统档案、修正系统参数。 有时候操作系统本身也会有BUG,要注意安装官方发行的升级程序。 3.试用新版本的应用程序。 Mode: 将虚拟内存撤换 答案:

相关文档
最新文档