电脑浏览问题

[复制链接]
查看11 | 回复0 | 2009-1-30 06:28:38 | 显示全部楼层 |阅读模式
这几天不知道什么原因,我的电脑用Internet Explorer浏览网页都回出现这个提示,"0x7c931e58"指令引用的"0x00000000"内存。该内存不能为"read".但是用遨游浏览时又没有问题,请教各位高手,这是什么原因,因该怎样解决阿?

                                                                                                这不是你软件的毛病的,是你的内存有了坏的颗粒。我以前找的一篇文章,你看看吧 相信会增加你对这个问题的理解“内存指令不能为read”的一般解决方法 运行某些程序的时候,有时会出现内存错误的提示,然后该程序就关闭。 “0x????????”指令引用的“0x????????”内存。该内存不能为“read”。 “0x????????”指令引用的“0x????????”内存,该内存不能为“written”。 以上的情况相信大家都应该见到过,甚至说一些网友因为不爽于这个经常出现的错误提示而屡次重装系统。相信普通用户应该不会理解那些复杂的十六进制代码。 出现这个现象有方面的,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了。 一.先说说硬件: 一般来说,电脑硬件是很不容易坏的。内存出现问题的可能性并不大(除非你的内存真的是杂牌的一塌徒地),主要方面是: 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 文件夹中的所有文件。(在删除前请创建这些文件的备份副本。) 打开"服务和应用程序",单击服务,然后打开并启动 Windows Management Instrumentation 服务。当服务重新启动时,将基于以下注册表项中所提供的信息重新创建这些文件: HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\WBEM\\CIMOM\\Autorecover MOFs相信每一个使用Windows操作系统的人都遇到这种经历:在运行某个程序时出现如下的错误信息:“0X????????指令引用的0x00000000内存,该内存不能为read或written”,然后应用程序就被关闭。很多电脑使用者遇到这种情况很困惑,不知该怎么办才好。其实这种错误信息的产生很大情况下是说明内存发生问题了。什么是内存呢?在计算机的组成结构中,有一个很重要的部分,就是存储部件。内存指的就是主板上的存储部件,是CPU直接与之沟通,并用其存放当前正在使用的(即执行中)的数据和命令的重要部件。当你用键盘或鼠标输入某个命令后,CPU就会解释命令并将指令或程式载入到内存中,这样程序才能够被执行。而一旦内存发生问题了,程序就不能被执行,因此就产生了前面我们提到的“该内存不能为read或written”错误。
知道内存的重要性后,我们在选择内存时就要特别加以留意。许多人对于内存的选购非常头疼,的确,由于市场上的内存条质量良莠不齐,假冒伪劣产品充斥着市场,在选购的时候,还真是要费些工夫。市场上的劣质内存无外乎两种形式,其一就是劣质产品,另一种就是Remark过的(即打磨过的)内存,就是将高时钟周期的内存芯片Remark成低时钟周期的产品,再以低时钟周期产品的高价卖出,赚取其中的差额。打磨过的内存芯片上面的字很不清晰,而且没有深度,仔细看就会发现是印上去的。而没有经过Remark的内存芯片上面的字应该是凹进去的,这些字是激光刻上去的,用手摸时能够感觉到和Remrk的产品是不同的,因此,在购买的时候只要稍加注意就不会上当。对于劣质内存的鉴别就没有这么容易了。劣质内存条工作起来很不稳定,在额定频率下工作都会出现“该内存不能为read或written”现象,这类内存的PCB板大都没有使用PC100规定的六层板而是四层且做工粗糙,板边缘切割不齐,有的还带有刺。如果您发现了这样的内存,那它一定是那些质量极差的产品,说不好就是哪个手工作坊里生产的。这些劣质内存的生产成本比正规渠道生产的到低许多,所以这类内存的价格通常要比正牌的内存低几十块钱。你可不要为了省这几个钱买回来劣质内存,到时候经常死机可就有点得不偿失了。
另外选择何种规格的内存,还要根据搭配的主板和CPU来决定。目前市场上最常见的内存型号主要为DDR266、DDR333和DDR400,分别对应PC2100、PC2700和PC3200。对于Athlon XP来说,2400+和以下型号的前端总线频率均为266MHz,因此单通道DDR266就可满足CPU的需求。Athlon XP 2500+~3000+的前端总线频率为333MHz,因此需搭配DDR333内存。同理,前端总线频率为400MHz的Athlon XP 3200+则需搭配DDR400内存才可满足需求。由于高端产品的性价比不高,因此目前AMD平台选购DDR333足以满足需求。内存频率超过CPU前端总线频率时,由于时钟不同步,反而会出现小幅的性能下降现象。对于P4来说则正好相反,由于P4的前端总线频率分别为400MHz/533MHz /800MHz,因此对内存带宽的需求也很大。不过在搭配i845PE以前的芯片组时,官方仅支持DDR266,不过主板厂商均提供了DDR333的支持。i845PE正式提供了对DDR333的支持,i865PE则提供了对800FSB P4的支持,在搭配800FSB的P4时,内存的默认频率为200(400)MHz,而搭配较老P4时与i845PE相同。因此,目前800FSB P4的最佳拍档是DDR400内存,再加上i865的双通道,800FSB P4的性能才能得以充分发挥。考虑到赛扬的超频性,DDR333的内存是400/533FSB CPU的较好搭配。
在内存使用上也有很多的讲究。首先,要尽量避免内存混插。所谓内存混插就是将不同规范,或者是不同容量,不同品牌的内存在同一台电脑中混合使用。很多用户每过一段时期都要升级一下自己的电脑配置,而我们升级电脑后,手里往往会剩下几条不同品牌,不同型号的内存。这些内存卖掉又不值钱,于是想要继续使用。其实,品牌、型号不同的内存往往会出现兼容性问题,是造成电脑频繁死机的主要原因,所以一般不推荐这样做。如果你实在舍不得而坚持要用,也要将低规范、低标准的内存插入内存插槽中的第一位置的内存插槽上。有时混插还会造成内存温度过高,解决的方法主要看主板是否支持内存电压可调,如果主板支持,可在主板上或BIOS中强行设置内存的电压为所有混插内存中的电压最低值。另外,还要进入BIOS设置,将内存的相应项包括CAS等设置成为低规范的相应值,否则很可能开机就黑屏或者即使能进入系统也会频繁出现“该内存不能为read或written”的故障。
其次,还要注意以下几个因素都会造成内存的问题。第一是电压:市电电压过大的波动,或者PC机上使用劣质电源,都会给内存带来损害,有时候这种损害可能是马上显现出来,而另一些情况则可以是长期的、逐渐的降低内存的电气指数。另外,长期对内存采用加压超频的方法也同样会损害内存,对CPU超频时一旦内存达不到所需频率就很容易发热而造成内存条的损坏。第二是静电:静电是导致内存模块损坏的最主要因素。因此,在我们安装或卸载内存模块时,如果有条件可以使用防静电手环,不然,接触内存模块前要采取一定手段将身上的静电散去,如摸一下接地的金属制品象暖气管道之类。第三是灰尘:如果您的PC机箱内充满灰尘,或者PC工作环境相对潮湿,那么,长期工作在这类环境因素下,内存的金手指部分就会出现锈迹。很多时候,出现“该内存不能为read或written”的故障时只要把内存拔出来用橡皮擦擦金手指问题就可以解决就是这个道理。另外,如果您的PC散热不好的话,内存长期工作在高温下,无论相应的热量是由内存模块还是周围部件产生,也会缩短其寿命。
当然,出现了“该内存不能为read或written”的故障也不一定都是内存的问题,电脑中了病毒或木马以及运行的程序本身的Bug也会造成这种现象。有些初学者很难分清究竟是什么原因造成的,这时你就要向有经验的电脑高手请教。如果身边没有这些的人,也可以下载一个即时答疑软件“电脑专家2005”(下载地址:http://www.bizsofts.com/ComputerExpert/Download.htm)向其中的电脑专家请教。总之,随着你的实际操作经验的不断积累,相信对这类故障能够很快进行识别并加以解决。使用Windows操作系统的人有时会遇到这样的错误信息:“0X????????指令引用的0x00000000内存,该内存不能written”,然后应用程序被关闭。如果去请教一些“高手”,得到的回答往往是“Windows就是这样不稳定”之类的义愤和不屑。其实,这个错误并不一定是Windows不稳定造成的。本文就来简单分析这种错误的常见原因。 一、应用程序没有检查内存分配失败   程序需要一块内存用以保存数据时,就需要调用操作系统提供的“功能函数”来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。这就是“动态内存分配”,内存地址也就是编程中的“指针”。   内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。当分配失败时系统函数会返回一个0值,这时返回值“0”已不表示新启用的指针,而是系统向应用程序发出的一个通知,告知出现了错误。作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的“健壮性”。   若应用程序没有检查这个错误,它就会按照“思维惯性”认为这个值是给它分配的可用指针,继续在之后的运行中使用这块内存。真正的0地址内存区保存的是计算机系统中最重要的“中断描述符表”,绝对不允许应用程序使用。在没有保护机制的操作系统下(如DOS),写数据到这个地址会导致立即死机,而在健壮的操作系统中,如Windows等,这个操作会马上被系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就会出现上述的“写内存”错误,并指出被引用的内存地址为“0x00000000”。   内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中“安装”的病毒程序),更改了大量的系统参数和系统文件之后。 二、应用程序由于自身BUG引用了不正常的内存指针   在使用动态分配的应用程序中,有时会有这样的情况出现:程序试图读写一块“应该可用”的内存,但不知为什么,这个预料中可用的指针已经失效了。有可能是 “忘记了”向操作系统要求分配,也可能是程序自己在某个时候已经注销了这块内存而“没有留意”等等。注销了的内存被系统回收,其访问权已经不属于该应用程序,因此读写操作也同样会触发系统的保护机制,企图“违法”的程序唯一的下场就是被操作终止运行,回收全部资源。计算机世界的法律还是要比人类有效和严厉得多啊!   像这样的情况都属于程序自身的BUG,你往往可在特定的操作顺序下重现错误。无效指针不一定总是0,因此错误提示中的内存地址也不一定为“0x00000000”,而是其他随机数字。 如果系统经常有所提到的错误提示,下面的建议可能会有帮助:   1.查看系统中是否有木马或病毒。这类程序为了控制系统往往不负责任地修改系统,从而导致操作系统异常。平常应加强信息安全意识,对来源不明的可执行程序绝不好奇。   2.更新操作系统,让操作系统的安装程序重新拷贝正确版本的系统文件、修正系统参数。有时候操作系统本身也会有BUG,要注意安装官方发行的升级程序。   3.试用新版本的应用程序。 问题 运行某些程序的时候,有时会出现内存错误的提示,然后该程序就关闭。 “0x????????”指令引用的“0x????????”内存。该内存不能为“read”。 “0x????????”指令引用的“0x????????”内存,该内存不能为“written”。 一般出现这个现象有方面的,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了。 故障分析 硬件方面: 一般来说,内存出现问题的可能性并不大,主要方面是:内存条坏了、内存质量有问题,还有就是2个不同牌子不同容量的内存混插,也比较容易出现不兼容的情况,同时还要注意散热问题,特别是超频后。你可以使用MemTest 这个软件来检测一下内存,它可以彻底的检测出内存的稳定度。 假如是双内存,而且是不同品牌的内存条混插或者买了二手内存时,出现这个问题,这时,就要检查是不是内存出问题了或者和其它硬件不兼容。 软件方面: 先简单说说原理:内存有个存放数据的地方叫缓冲区,当程序把数据放在其一位置时,因为没有足够空间,就会发生溢出现象。举个例子:一个桶子只能将一斤的水,当放入两斤的水进入时,就会溢出来。而系统则是在屏幕上表现出来。这个问题,经常出现在windows2000和XP系统上,Windows 2000/XP对硬件的要求是很苛刻的,一旦遇到资源死锁、溢出或者类似Windows 98里的非法操作,系统为保持稳定,就会出现上述情况。另外也可能是硬件设备之间的兼容性不好造成的。 问题产生原因原因--解决方法 内存条坏了--更换内存条 双内存不兼容--使用同品牌的内存或只用一条内存 内存质量问题--更换内存条 散热问题--加强机箱内部的散热 内存和主板没插好或和其它硬件不兼容等--重插内存或换个插糟 硬盘有问题--更换硬盘 驱动问题--重装驱动。如果是新系统,要先安装主板驱动 软件损坏--重装软件 软件有BUG--打补丁或用最新的版本。 软件和系统不兼容--给软件打上补丁或者试试系统的兼容模式 软件和软件之间有冲突--如果最近安装了什么新软件,卸载了试试 软件要使用到其它相关的软件有问题--重装相关软件。比如播放某一格式的文件时出错,可能是这个文件的解码器有问题 病毒问题--杀毒 杀毒软件与系统或软件冲突--由于杀毒软件是进入底层监控系统的,可能与一些软件冲突,卸载了试试 系统本身有问题--有时候操作系统本身也会有BUG,要注意安装官方发行的升级程序,像SP的补丁,最好要打上。如果还不行重装系统或更换其它版本的系统了。 此问题已经引起我们的重视并有解决方案,请去我们的官方网站了解及下载相关程序。运行某些程序的时候,有时会出现内存错误的提示,然后该程序就关闭。“0x????????”指令引用的“0x????????”内存。该内存不能为“read”。 “0x????????”指令引用的“0x????????”内存,该内存不能为“written”。 以上的情况相信大家都应该见到过,甚至说一些网友因为不爽于这个经常出现的错误提示而屡次重装系统。相信普通用户应该不会理解那些复杂的十六进制代码。出现这个现象有方面的,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了。一:先说说硬件:一般来说,电脑硬件是很不容易坏的。内存出现问题的可能性并不大(除非你的内存真的是杂牌的一塌徒地),主要方面是: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 文件夹中的所有文件。(在删除前请创建这些文件的备份副本。) 打开"服务和应用程序",单击服务,然后打开并启动 Windows Management Instrumentation 服务。当服务重新启动时,将基于以下注册表项中所提供的信息重新创建这些文件: HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\WBEM\\CIMOM\\Autorecover MOFs                                       
提问者对答案的评价:
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行