首页> 要闻 > > 正文

【全球时快讯】内存该内存不能为written_引起内存不能为”written“的解决方法

2023-03-01 12:27:53 来源:互联网

提 到内存该内存不能为written_引起内存不能为”written“的解决方法大家在熟悉不过了,那你是否知道内存该内存不能为written_引起内存不能为”written“的解决方法吗?快和小编一起去了解一下吧!

首先,应用程序无法检查内存分配。

当一个程序需要一块内存来存储数据时,需要调用操作系统提供的“函数function”来申请。如果内存分配成功,函数会将新打开的内存区域的地址返回给应用程序,应用程序可以通过这个地址使用这个内存。这就是“动态内存分配”,内存地址也是编程中的“指针”。


(资料图片)

内存并不总是可用和取之不尽的,有时内存分配会失败。当分配失败时,系统函数将返回值0。此时,返回值“0”并不代表新启用的指针,而是系统向应用程序发送的出错通知。作为应用程序,应该在每次内存应用后检查返回值是否为0。如果是,说明出了问题,要采取一些措施来挽救,增强了程序的“健壮性”。

如果应用程序不检查这个错误,它会根据“思维惯性”将这个值视为分配给它的可用指针,并在后续操作中继续使用这个内存。的实0地址存储区是计算机系统中最重要的“中断描述符表”,是绝对不允许应用程序使用的。在没有保护机制的操作系统(比如DOS)中,向该地址写入数据会导致立即崩溃,而在健壮的操作系统(比如Windows)中,该操作会立即被系统的保护机制捕获。因此,操作系统会强制关闭错误的应用程序,以防止其错误扩大。此时会出现上述“写内存”错误,引用的内存地址为“0x00000000”。

内存分配失败的原因有很多,比如内存不足,系统函数版本不匹配等。所以这种分配失败往往发生在操作系统使用时间长了,安装了多种应用程序(包括不小心安装的病毒程序),更改了很多系统参数和系统文件之后。

第二,应用程序由于自身的BUG引用了一个异常的内存指针。

在使用动态分配的应用程序中,有时会出现这样的情况:程序试图读写一个“应该可用”的内存,但不知何故,这个原本应该可用的指针已经过期了。可能是“我忘了”向操作系统请求分配,也可能是程序本身在某个时候注销了这个内存而“没注意”等等。注销的内存被系统收回,其访问权不再属于应用程序。所以读写操作也会触发系统的保护机制。企图“违法”的程序,唯一的结局就是被操作终止,所有资源被收回。计算机世界的法律还是比人类有效和严厉得多!

这样的情况属于程序本身的BUG,你经常可以在一个特定的操作序列中重现错误。无效指针不总是0,所以错误提示中的内存地址不一定是“0x00000000”,也可以是其他随机数。

如果系统经常提到错误提示,以下建议可能会有所帮助:

1.检查系统是否有特洛伊木马或病毒。这类程序往往为了控制系统而不负责任地修改系统,导致操作系统异常。我们要时刻加强信息安全意识,千万不要对来源不明的可执行程序感到好奇。

2.更新操作系统,并让操作系统的安装程序复制正确版本的系统文件并校正系统参数。有时候操作系统本身也会有bug。注意安装官方发布的升级程序。

3.试用该应用程序的新版本。

问题

在运行一些程序时,有时会出现内存错误提示,然后关闭程序。

“0x?"“0x?被指令引用?"记忆。存储器不能被“读取”。

“0x?"“0x?被指令引用?"记忆,是不能“写”出来的。

总的来说,这种现象有很多方面。一是硬件有问题,也就是内存,二是软件有很多问题。

故障分析

硬件方面:

一般来说,内存出现问题的可能性不大。主要方面是:内存条坏了,内存质量有问题,两个不同品牌不同容量的内存混用,也容易出现不兼容的情况。同时也要注意散热,尤其是超频之后。可以用软件MemTest来检查内存,可以彻底检查内存的稳定性。

如果在使用双内存,混装不同品牌的内存条或者买了二手内存的情况下出现这种问题,那么就要检查一下是不是内存出了问题,或者和其他硬件不兼容。

软件方面:

先简单说一下原理:内存中有一个存储数据的地方叫缓冲区。当一个程序把数据放到它该放的位置时,会因为空间不够而溢出。比如一个水桶只能装一公斤水,放两公斤水进去就会溢出来。并且该系统显示在屏幕上。这个问题经常出现在windows2000和XP系统上。Windows 2000/XP对硬件的要求非常严格。一旦遇到类似Windows 98中的资源死锁、溢出或非法操作,为了保持系统稳定,就会出现上述情况。另外,也可能是硬件设备之间兼容性差造成的。

几个例子

示例:打开IE浏览器,几分钟后将出现“0x70dcf39f”指令引用的“0x00000000”内存。存储器不能被“读取”。要终止程序,请单击“确定”消息框。单击“确定”后,消息框“出现内部错误,您正在使用的一个窗口即将关闭”再次出现。关闭这个提示信息后,IE浏览器也关闭了。

解决方法:修复或升级IE浏览器,同时打补丁。我见过其中一种修复方法:Win2000自升级,即从Win2000升级到Win2000。其实这个方法就是把系统恢复到初始状态。比如你的IE升级到6.0,升级后就换成了IE5.0。

例2:双击windows xp下光盘中的“AutoRun.exe”文件,显示“0x77f745cc”指令引用的“0x00000078”内存。该存储器不能被写入。要终止该程序,请单击“确定”,但它在Windows 98中可以正常运行。

解决方案:这可能是系统兼容性问题。对于winXP系统,右键“AutoRun.exe”文件,属性,兼容性,选择“在兼容模式下运行此程序”,选择“Windows 98/Me”。Win2000,如果SP打了补丁,只要启动运行,输入:regsvr 32 c:\ win nt \ app patch \ slayer ui.dll。右键单击,属性和兼容性选项也会出现。

例RealOne Gold关闭时,出现错误。以前可以正常工作,但是最近每次关闭都出现“0xffffffff”指令引用的“0x ffffff”内存。内存不可能是“已读”的提示。

解决方法:当使用的输入法是微软拼音输入法2003,并且隐藏了语言栏(不隐藏的时候没问题)时,关闭RealOne就会出现这个问题。因此,您可以在关闭RealOne之前显示语言栏或使用任何其他输入法作为当前输入法来解决此问题。

《出埃及记》4:我的英雄超解自从上网后就玩不了了。每次都提示“Ox060692f6”(每次更改)指令引用的“Oxff000011”内存无法“读取”。请按“确定”终止程序。

解决方案:尝试重新安装英雄超级放肆。如果会重装,可以尝试从官网下载相应版本的补丁。还没有,所以我不得不尝试另一个球员。

例子5:双击游戏的快捷方式。“Ox77f5cdO”指令指的是“Oxffffffff”内存,无法“读取”,提示Client.dat程序错误。

解决方法:重新安装显卡最新驱动,然后下载安装DirectX9.0。

例6:朋友给我发消息,我电脑出现错误信息:“0*772b548f”指令引用的“0*00303033”内存,无法“写入”。然后QQ自动下线,打开QQ发现他发的十几条消息。

解决方法:这是对方利用QQ BUG,发送了一个特殊代码,在QQ中出错。只要打补丁或者升级到最新版本就没事了。

《出埃及记》7:我的笔记本电脑使用的XP系统,关闭网页时有时会弹出。遇到问题需要关闭,然后还有指令0x03e7c738引用的0x03e7c738内存,无法读取。发生了什么事?

解决方法:先杀病毒。另外,如果安装了浏览增强等软件,请卸载。

示例8:当您从桌面或开始菜单打开任何程序时,都会出现一条错误消息:“0x00000000”内存被“0x .”引用指令不能为“读取”。省略号代表变量值。而且从运行中打开程序就可以了。

解决方法:运行regedit进入注册表,在HKEY _ local _ machine \ software \ Microsoft \ windows \ current version \ explorer \ shell execute hooks下,应该只有一个正常键值“{ aeb 6717 e-7e 19-11d 0-97EE-00 c 04 FD 91972 }”,删除其他(。

三个月前我买了一台电脑。系统不稳定。系统三个月重装了好几次,四五天前刚装的。但是,资源管理器应用程序错误经常随机发生,并且“0x4a01259d”指令引用了“0x00000000”内存。无法“读取”内存。要终止程序,请单击“确定”。若要调试程序,请单击“取消”。如果您单击“确定”,windows桌面将会消失。这种问题在之前的系统中也出现过。不知道是不是硬件问题?

解决方法:内存兼容问题!遇到这种问题,用户可以打开机器,移动内存位置,看看是否能解决问题。如果问题仍然存在,他们可以与您的朋友交换内存。

从上面的例子可以看出,失败的原因有很多。下面列出了已经提到的和可能出现的原因,方便参考。

问题的原因-解决方案

内存模块损坏-更换它。

双内存不兼容-使用相同品牌的内存或仅使用一个内存。

内存质量问题-更换内存模块

散热问题——加强机箱内部散热。

内存主板没有插好或者与其他硬件不兼容等。-重新插入或更换内存。

硬盘有问题,请更换。

驱动程序问题-重新安装驱动程序。如果是新系统,先安装主板驱动。

软件损坏-重新安装软件。

软件中有缺陷,请打补丁或使用最新版本。

与软件系统不兼容-修补软件或尝试系统的兼容模式。

软件和软件之间有冲突-如果最近安装了任何新软件,请尝试卸载它。

使用其他相关软件有问题——重装相关软件。比如播放某个格式的文件出现错误,这个文件的解码器可能有问题。

病毒问题-防病毒

杀毒软件与系统或软件冲突——由于杀毒软件进入底层监控系统,可能会与某些软件冲突,所以尝试卸载。

系统本身有问题——有时候操作系统本身也会有bug。你要注意安装官方发布的升级程序,比如SP补丁,最好装上。如果没有,请重新安装系统或更换系统的其他版本。

这个问题引起了我们的注意,有解决的办法。请到我们的官网了解并下载相关程序。

在运行一些程序时,有时会出现内存错误提示,然后关闭程序。

“0x?"“0x?被指令引用?"记忆。存储器不能被“读取”。

“0x?"“0x?被指令引用?"记忆,是不能“写”出来的。

相信大家应该都看到了上面的情况,甚至可以说有网友因为对这种频繁的错误提示不满意而反复重装系统。相信普通用户应该看不懂那些复杂的十六进制代码。

这个现象有很多方面。一是硬件有问题,也就是内存,二是软件有很多问题。

首先说说硬件。

一般来说,电脑硬件不容易坏。内存问题的可能性不大(除非你的内存真的是一堆杂牌)。主要方面有:1。内存坏了(二手内存居多),2。使用了有质量问题的内存,3。插在主板上的金手指部分灰尘太多。4。使用不同品牌不同容量的内存,导致不兼容。5。超频导致的散热问题。可以用软件MemTest来检查内存,可以彻底检查内存的稳定性。

第二,如果没有,则排除软件故障。

先说原理:内存中有一个存储数据的地方叫缓冲区。当一个程序将数据放入缓冲区时,需要操作系统提供的一个“函数function”来应用。如果内存分配成功,函数会将新打开的内存区域的地址返回给应用程序,应用程序可以通过这个地址使用这个内存。这就是“动态内存分配”,内存地址也是编程中的“光标”。内存并不总是可用和取之不尽的,有时内存分配会失败。当分配失败时,系统函数将返回值0。此时,返回值“0”不代表新启用的光标,而是系统通知应用程序发生了错误。作为应用程序,应该在每次内存应用后检查返回值是否为0。如果是,说明出了问题,要采取一些措施来挽救,增强了程序的“健壮性”。如果应用程序不检查这个错误,它会根据“思维惯性”将这个值视为分配给它的可用光标,并在后续执行中继续使用这个内存。真正的0地址存储区存储的是计算机系统中最重要的“中断描述符表”,是绝对不允许应用程序使用的。在没有保护机制的操作系统(如DOS)中,向该地址写入数据会导致立即崩溃,而在健壮的操作系统(如Windows)中,该操作会立即被系统的保护机制捕获。因此,操作系统将强制关闭故障应用程序,以防止其错误扩大。此时会出现上述内存无法“读取”的错误,引用的内存地址为“0x00000000”。内存分配失败的原因有很多,比如内存不足,系统函数版本不匹配等。所以这种分配失败往往发生在操作系统使用时间较长,安装了多种应用程序(包括不小心安装的病毒程序),大量系统参数和系统文件被更改之后。

在使用动态分配的应用程序中,有时会出现这样的情况:程序试图读写“应该可用”的内存,但不知何故,原本应该可用的游标却失败了。可能是“我忘了”向操作系统请求分配,也可能是程序本身在某个时候注销了这个内存而“没注意”等等。被注销的内存被系统收回,其访问权限不再属于应用,因此读写操作也会触发系统的保护机制。企图“违法”的程序,唯一的结局就是被操作终止,所有资源被收回。计算机世界的法律还是比人类有效和严厉得多!这样的情况属于程序本身的BUG,你经常可以在一个特定的操作序列中重现错误。无效光标不一定是0,所以错误提示中的内存地址不一定是“0x00000000”,也可以是其他随机数。

首先,建议:

1.检查系统中是否有木马或病毒。这类程序为了控制系统,往往不负责任地修改系统,导致操作系统异常。我们要时刻加强信息安全意识,千万不要对来源不明的可执行程序感到好奇。

2.更新操作系统,并让操作系统的安装程序复制正确版本的系统文件并校正系统参数。有时候操作系统本身也会有bug。注意安装官方发布的升级程序。

3.尽量用最新的正式版应用,测试版和试用版,都会有bug。

4.删除并重新创建Winnt\System32\Wbem\Repository文件夹中的文件:右键单击桌面上的“我的电脑”,然后单击“管理”。在“服务和应用程序”下,单击“服务”,然后关闭并停止windows management instrumentation服务。删除Winnt\System32\Wbem\Repository文件夹中的所有文件。请在删除之前创建这些文件的备份副本。)打开服务和应用程序,单击服务,然后打开并启动Windows Management Instrumentation服务。当该服务重新启动时,将根据以下注册表项中提供的信息重新创建这些文件:HKEY _本地_机器\软件\ Microsoft \ WBEM \ CIMOM \ autorecovermofs。

这里有一些例子供你分析:

例如:指令0x0a8ba9ef引用的内存0x03713644或指令0x70dcf39f引用的内存0x00000000出现在IE浏览器中。存储器不能被“读取”。要终止程序,请单击“确定”消息框。单击“确定”后,消息框“出现内部错误,您正在使用的一个窗口即将关闭”再次出现。关闭这个提示信息后,IE浏览器也关闭了。解决方法:

1.开始-运行窗口,输入“regsvr32 actxprxy.dll”并回车,这时会出现一个信息对话框“actxprxy.dll的dllregisterserver成功”,确认。依次运行以下命令。(有人说这个方法没必要,但是重新注册那些。dll不会伤害系统。反正从多方入手就够解决问题了。)

shdocvw.dll注册服务商32

oleaut32.dll注册服务商32

actxprxy.dll注册服务商32

mshtml.dll注册服务商32

msjava.dll注册服务商32

browseui.dll注册服务商32

urlmon.dll注册服务商32

2.修复或升级IE浏览器,同时给系统打补丁。我看到有一种修复方法是把系统恢复到初始状态。建议IE升级到6.0。

例2:一些应用错误:“0x7cd64998”指令引用了“0x14c96730”内存。存储器不能被“读取”。解决方案:Win XP的“预读”技术,这是一种优化技术,也已经在应用中使用。系统分析每个应用程序的前几次启动,然后添加描述应用程序要求的虚拟“内存映像”,并将此信息存储在Windows\Prefetch文件夹中。一旦镜像建立,应用软件的加载速度大大提高。XP的预读数据存储最近8次系统启动或应用软件启动的信息。建议更换虚拟内存,删除所有*。PF文件,并让windows再次收集程序的物理地址。

例3:双击XP下光盘中的“AutoRun.exe”文件,显示“0x77f745cc”指令引用的“0x00000078”内存。该存储器不能被写入。要终止该程序,请单击“确定”,但它在Windows 98中可以正常运行。解决方案:这可能是系统兼容性问题。对于winXP系统,右键“AutoRun.exe”文件,属性,兼容性,选择“在兼容模式下运行此程序”,选择“Windows 98/Me”。Win2000,如果SP打了补丁,只要启动运行,输入:regsvr 32 c:\ win nt \ app patch \ slayer ui.dll。右键单击,属性和兼容性选项也会出现。

例RealOne Gold关闭时,出现错误。以前可以正常工作,但是最近每次关闭都出现“0xffffffff”指令引用的“0x ffffff”内存。内存不可能是“已读”的提示。解决方法:当使用的输入法是微软拼音输入法2003,并且隐藏了语言栏(不隐藏的时候没问题)时,关闭RealOne就会出现这个问题。因此,您可以在关闭RealOne之前显示语言栏或使用任何其他输入法作为当前输入法来解决此问题。

例5:我的英雄超解自从上网后就玩不了了。每次都提示“0x060692f6”(每次更改)指令引用的“0xff000011”的内存无法“读取”。请按“确定”终止程序。解决方案:尝试重新安装英雄超级放肆。如果会重装,可以尝试从官网下载相应版本的补丁。还没有,所以我不得不尝试另一个球员。

例6:双击一个游戏的快捷方式,“0x77f5cd0”指令指向“0xffffffff”内存,无法“读取”,提示Client.dat程序错误。解决方法:重新安装显卡最新驱动,然后下载安装DirectX9.0。

例7:朋友给我发消息,我电脑出现错误信息:“0x772b548f”指令引用的“0x00303033”内存,无法“写入”。然后QQ自动下线,打开QQ发现他发的十几条消息。解决方法:这是对方利用QQ BUG,发送了一个特殊代码,在QQ中出错。只要打补丁或者升级到最新版本就没事了。

说了这么多,内存不能“读”的原因大概可以归纳为以下几点:

1.驱动程序不稳定且与系统不兼容,这很可能是内存无法读取或文件受保护的原因。

2.系统中安装了一个或多个流氓软件,那么IE或系统崩溃的几率很大,文件保护也有可能。

3.系统加载的程序或系统运行的程序有冲突,特别是一些杀毒软件监控程序。

4.系统本身存在漏洞,容易受到网络攻击。

5.病毒问题也是内存无法读取、文件保护、Explorer.exe错误的主要原因.

6.如果玩游戏时无法读取内存,很可能是显卡驱动不合适(这里有不适合游戏或电脑的显卡),或者DX9.0C版本不够新或者不符合游戏或显卡驱动。

7.有些软件本身就不足。

8.电脑硬件过热也是内存无法读取的原因之一。

9.电脑内存和主板兼容性差也是内存无法读取的致命原因!

希望以上总结能对你判断内存无法读取的问题原因有所帮助。

另外,网上流传着一个简单的解决方案:

在命令行窗口中按Enter键。

代码:

用于(%windir%\system32\*)中的%1。ocx) do regsvr32 /s %1

[复制到剪贴板]

完了,回车,回车。

代码:

用于(%windir%\system32\*)中的%1。do regsvr32 /s %1

[复制到剪贴板]

这需要很长时间,耐心等待。

但是在整个效果出来之前也可能需要重启。

本文到此结束,希望对大家有所帮助。

标签: 应用程序 操作系统 解决方案 重新安装