本帖最后由 老虎晒太阳 于 2009-11-10 11:22 编辑
最近电脑上间歇性出现这中调用内存时,内存不能为read或Wirter的现象出现。所以最进在网上寻找了下这种问题的答案。现在拿出来和大家分享下。
简单的来说分为两种情况:
硬件:内存问题。可以能是内存不兼容(插了两片内存)。
内存金手指接触不良,时间长了,金手指氧化了。
可能时间长了,内存上面的内存颗粒存在虚焊,或是内存上的一颗或多颗内存颗粒坏了。
软件问题:病毒。
系统问题。用的是GHOST的系统(多数GHOST的系统都会出现这种问题)
主板驱动问题。
软件问题。软件中有BUG.
原因是该程序运行时需要占用内存空间。而内存空间不是什么程序要用内存了就可以占用内存的。需要向系统申请调用内存。系统在核实后分配一定的内存空间给该程序。一般来说内存和硬盘一样,在起始位都是不能被占用的。硬盘的起始位(最前面的一部分空间)是主分区表。内存的起始位是....(不记得了。。。。)。如果系统错误的将内存的起始位开始分配给程序了。那么在随后的操作中系统就会发现错误并终止错误,弹出内存不能为Read 或wirter的提示。或者是系统分配了一定的内存空间给该程序后,该程序在一定的时间内没有占用该内存,系统就会回收该部分内存空间,并分配给其他程序。如果这时候原先分配了内存空间的程序又要占用该部分内存了,系统也会报错。
基本是这样子的,具体的我也说不清楚。请高手们原谅我这小菜。
解决方法两种:
开始-运行-输入CMD
输入for %1 in(%windir%\system32\*.dll) do regsvr32.exe/s %1
第二种是改下注册表。
regedit(进入注册表)
找到HKEY_LOCAL_MACHINE\SOFTWARE\MICRSOFT\WINDOWS\CURRENTVERSION\EXPLORER\SHELL EXECUTEHOOKS.改键值下只能存在一个键值:
{AEB6717E-7E19-11DO-97EE-OOCO4FD91972}
其余的键值可以删除。
另外关于第一种解决方法。我在网上收索到一个小工具,大家可以用下。 |
|