猜你喜歡
更多>提 到內存該內存不能為written_引起內存不能為”written“的解決方法大家在熟悉不過了,那你是否知道內存該內存不能為written_引起內存不能為”written“的解決方法嗎?快和小編一起去了解一下吧!
首先,應用程序無法檢查內存分配。
當一個程序需要一塊內存來存儲數(shù)據時,需要調用操作系統(tǒng)提供的“函數(shù)function”來申請。如果內存分配成功,函數(shù)會將新打開的內存區(qū)域的地址返回給應用程序,應用程序可以通過這個地址使用這個內存。這就是“動態(tài)內存分配”,內存地址也是編程中的“指針”。
(資料圖片)
內存并不總是可用和取之不盡的,有時內存分配會失敗。當分配失敗時,系統(tǒng)函數(shù)將返回值0。此時,返回值“0”并不代表新啟用的指針,而是系統(tǒng)向應用程序發(fā)送的出錯通知。作為應用程序,應該在每次內存應用后檢查返回值是否為0。如果是,說明出了問題,要采取一些措施來挽救,增強了程序的“健壯性”。
如果應用程序不檢查這個錯誤,它會根據“思維慣性”將這個值視為分配給它的可用指針,并在后續(xù)操作中繼續(xù)使用這個內存。的實0地址存儲區(qū)是計算機系統(tǒng)中最重要的“中斷描述符表”,是絕對不允許應用程序使用的。在沒有保護機制的操作系統(tǒng)(比如DOS)中,向該地址寫入數(shù)據會導致立即崩潰,而在健壯的操作系統(tǒng)(比如Windows)中,該操作會立即被系統(tǒng)的保護機制捕獲。因此,操作系統(tǒng)會強制關閉錯誤的應用程序,以防止其錯誤擴大。此時會出現(xiàn)上述“寫內存”錯誤,引用的內存地址為“0x00000000”。
內存分配失敗的原因有很多,比如內存不足,系統(tǒng)函數(shù)版本不匹配等。所以這種分配失敗往往發(fā)生在操作系統(tǒng)使用時間長了,安裝了多種應用程序(包括不小心安裝的病毒程序),更改了很多系統(tǒng)參數(shù)和系統(tǒng)文件之后。
第二,應用程序由于自身的BUG引用了一個異常的內存指針。
在使用動態(tài)分配的應用程序中,有時會出現(xiàn)這樣的情況:程序試圖讀寫一個“應該可用”的內存,但不知何故,這個原本應該可用的指針已經過期了??赡苁恰拔彝恕毕虿僮飨到y(tǒng)請求分配,也可能是程序本身在某個時候注銷了這個內存而“沒注意”等等。注銷的內存被系統(tǒng)收回,其訪問權不再屬于應用程序。所以讀寫操作也會觸發(fā)系統(tǒng)的保護機制。企圖“違法”的程序,唯一的結局就是被操作終止,所有資源被收回。計算機世界的法律還是比人類有效和嚴厲得多!
這樣的情況屬于程序本身的BUG,你經??梢栽谝粋€特定的操作序列中重現(xiàn)錯誤。無效指針不總是0,所以錯誤提示中的內存地址不一定是“0x00000000”,也可以是其他隨機數(shù)。
如果系統(tǒng)經常提到錯誤提示,以下建議可能會有所幫助:
1.檢查系統(tǒng)是否有特洛伊木馬或病毒。這類程序往往為了控制系統(tǒng)而不負責任地修改系統(tǒng),導致操作系統(tǒng)異常。我們要時刻加強信息安全意識,千萬不要對來源不明的可執(zhí)行程序感到好奇。
2.更新操作系統(tǒng),并讓操作系統(tǒng)的安裝程序復制正確版本的系統(tǒng)文件并校正系統(tǒng)參數(shù)。有時候操作系統(tǒng)本身也會有bug。注意安裝官方發(fā)布的升級程序。
3.試用該應用程序的新版本。
問題
在運行一些程序時,有時會出現(xiàn)內存錯誤提示,然后關閉程序。
“0x?"“0x?被指令引用?"記憶。存儲器不能被“讀取”。
“0x?"“0x?被指令引用?"記憶,是不能“寫”出來的。
總的來說,這種現(xiàn)象有很多方面。一是硬件有問題,也就是內存,二是軟件有很多問題。
故障分析
硬件方面:
一般來說,內存出現(xiàn)問題的可能性不大。主要方面是:內存條壞了,內存質量有問題,兩個不同品牌不同容量的內存混用,也容易出現(xiàn)不兼容的情況。同時也要注意散熱,尤其是超頻之后。可以用軟件MemTest來檢查內存,可以徹底檢查內存的穩(wěn)定性。
如果在使用雙內存,混裝不同品牌的內存條或者買了二手內存的情況下出現(xiàn)這種問題,那么就要檢查一下是不是內存出了問題,或者和其他硬件不兼容。
軟件方面:
先簡單說一下原理:內存中有一個存儲數(shù)據的地方叫緩沖區(qū)。當一個程序把數(shù)據放到它該放的位置時,會因為空間不夠而溢出。比如一個水桶只能裝一公斤水,放兩公斤水進去就會溢出來。并且該系統(tǒng)顯示在屏幕上。這個問題經常出現(xiàn)在windows2000和XP系統(tǒng)上。Windows 2000/XP對硬件的要求非常嚴格。一旦遇到類似Windows 98中的資源死鎖、溢出或非法操作,為了保持系統(tǒng)穩(wěn)定,就會出現(xiàn)上述情況。另外,也可能是硬件設備之間兼容性差造成的。
幾個例子
示例:打開IE瀏覽器,幾分鐘后將出現(xiàn)“0x70dcf39f”指令引用的“0x00000000”內存。存儲器不能被“讀取”。要終止程序,請單擊“確定”消息框。單擊“確定”后,消息框“出現(xiàn)內部錯誤,您正在使用的一個窗口即將關閉”再次出現(xiàn)。關閉這個提示信息后,IE瀏覽器也關閉了。
解決方法:修復或升級IE瀏覽器,同時打補丁。我見過其中一種修復方法:Win2000自升級,即從Win2000升級到Win2000。其實這個方法就是把系統(tǒng)恢復到初始狀態(tài)。比如你的IE升級到6.0,升級后就換成了IE5.0。
例2:雙擊windows xp下光盤中的“AutoRun.exe”文件,顯示“0x77f745cc”指令引用的“0x00000078”內存。該存儲器不能被寫入。要終止該程序,請單擊“確定”,但它在Windows 98中可以正常運行。
解決方案:這可能是系統(tǒng)兼容性問題。對于winXP系統(tǒng),右鍵“AutoRun.exe”文件,屬性,兼容性,選擇“在兼容模式下運行此程序”,選擇“Windows 98/Me”。Win2000,如果SP打了補丁,只要啟動運行,輸入:regsvr 32 c:\ win nt \ app patch \ slayer ui.dll。右鍵單擊,屬性和兼容性選項也會出現(xiàn)。
例RealOne Gold關閉時,出現(xiàn)錯誤。以前可以正常工作,但是最近每次關閉都出現(xiàn)“0xffffffff”指令引用的“0x ffffff”內存。內存不可能是“已讀”的提示。
解決方法:當使用的輸入法是微軟拼音輸入法2003,并且隱藏了語言欄(不隱藏的時候沒問題)時,關閉RealOne就會出現(xiàn)這個問題。因此,您可以在關閉RealOne之前顯示語言欄或使用任何其他輸入法作為當前輸入法來解決此問題。
《出埃及記》4:我的英雄超解自從上網后就玩不了了。每次都提示“Ox060692f6”(每次更改)指令引用的“Oxff000011”內存無法“讀取”。請按“確定”終止程序。
解決方案:嘗試重新安裝英雄超級放肆。如果會重裝,可以嘗試從官網下載相應版本的補丁。還沒有,所以我不得不嘗試另一個球員。
例子5:雙擊游戲的快捷方式。“Ox77f5cdO”指令指的是“Oxffffffff”內存,無法“讀取”,提示Client.dat程序錯誤。
解決方法:重新安裝顯卡最新驅動,然后下載安裝DirectX9.0。
例6:朋友給我發(fā)消息,我電腦出現(xiàn)錯誤信息:“0*772b548f”指令引用的“0*00303033”內存,無法“寫入”。然后QQ自動下線,打開QQ發(fā)現(xiàn)他發(fā)的十幾條消息。
解決方法:這是對方利用QQ BUG,發(fā)送了一個特殊代碼,在QQ中出錯。只要打補丁或者升級到最新版本就沒事了。
《出埃及記》7:我的筆記本電腦使用的XP系統(tǒng),關閉網頁時有時會彈出。遇到問題需要關閉,然后還有指令0x03e7c738引用的0x03e7c738內存,無法讀取。發(fā)生了什么事?
解決方法:先殺病毒。另外,如果安裝了瀏覽增強等軟件,請卸載。
示例8:當您從桌面或開始菜單打開任何程序時,都會出現(xiàn)一條錯誤消息:“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 }”,刪除其他(。
三個月前我買了一臺電腦。系統(tǒng)不穩(wěn)定。系統(tǒng)三個月重裝了好幾次,四五天前剛裝的。但是,資源管理器應用程序錯誤經常隨機發(fā)生,并且“0x4a01259d”指令引用了“0x00000000”內存。無法“讀取”內存。要終止程序,請單擊“確定”。若要調試程序,請單擊“取消”。如果您單擊“確定”,windows桌面將會消失。這種問題在之前的系統(tǒng)中也出現(xiàn)過。不知道是不是硬件問題?
解決方法:內存兼容問題!遇到這種問題,用戶可以打開機器,移動內存位置,看看是否能解決問題。如果問題仍然存在,他們可以與您的朋友交換內存。
從上面的例子可以看出,失敗的原因有很多。下面列出了已經提到的和可能出現(xiàn)的原因,方便參考。
問題的原因-解決方案
內存模塊損壞-更換它。
雙內存不兼容-使用相同品牌的內存或僅使用一個內存。
內存質量問題-更換內存模塊
散熱問題——加強機箱內部散熱。
內存主板沒有插好或者與其他硬件不兼容等。-重新插入或更換內存。
硬盤有問題,請更換。
驅動程序問題-重新安裝驅動程序。如果是新系統(tǒng),先安裝主板驅動。
軟件損壞-重新安裝軟件。
軟件中有缺陷,請打補丁或使用最新版本。
與軟件系統(tǒng)不兼容-修補軟件或嘗試系統(tǒng)的兼容模式。
軟件和軟件之間有沖突-如果最近安裝了任何新軟件,請嘗試卸載它。
使用其他相關軟件有問題——重裝相關軟件。比如播放某個格式的文件出現(xiàn)錯誤,這個文件的解碼器可能有問題。
病毒問題-防病毒
殺毒軟件與系統(tǒng)或軟件沖突——由于殺毒軟件進入底層監(jiān)控系統(tǒng),可能會與某些軟件沖突,所以嘗試卸載。
系統(tǒng)本身有問題——有時候操作系統(tǒng)本身也會有bug。你要注意安裝官方發(fā)布的升級程序,比如SP補丁,最好裝上。如果沒有,請重新安裝系統(tǒng)或更換系統(tǒng)的其他版本。
這個問題引起了我們的注意,有解決的辦法。請到我們的官網了解并下載相關程序。
在運行一些程序時,有時會出現(xiàn)內存錯誤提示,然后關閉程序。
“0x?"“0x?被指令引用?"記憶。存儲器不能被“讀取”。
“0x?"“0x?被指令引用?"記憶,是不能“寫”出來的。
相信大家應該都看到了上面的情況,甚至可以說有網友因為對這種頻繁的錯誤提示不滿意而反復重裝系統(tǒng)。相信普通用戶應該看不懂那些復雜的十六進制代碼。
這個現(xiàn)象有很多方面。一是硬件有問題,也就是內存,二是軟件有很多問題。
首先說說硬件。
一般來說,電腦硬件不容易壞。內存問題的可能性不大(除非你的內存真的是一堆雜牌)。主要方面有:1。內存壞了(二手內存居多),2。使用了有質量問題的內存,3。插在主板上的金手指部分灰塵太多。4。使用不同品牌不同容量的內存,導致不兼容。5。超頻導致的散熱問題??梢杂密浖﨧emTest來檢查內存,可以徹底檢查內存的穩(wěn)定性。
第二,如果沒有,則排除軟件故障。
先說原理:內存中有一個存儲數(shù)據的地方叫緩沖區(qū)。當一個程序將數(shù)據放入緩沖區(qū)時,需要操作系統(tǒng)提供的一個“函數(shù)function”來應用。如果內存分配成功,函數(shù)會將新打開的內存區(qū)域的地址返回給應用程序,應用程序可以通過這個地址使用這個內存。這就是“動態(tài)內存分配”,內存地址也是編程中的“光標”。內存并不總是可用和取之不盡的,有時內存分配會失敗。當分配失敗時,系統(tǒng)函數(shù)將返回值0。此時,返回值“0”不代表新啟用的光標,而是系統(tǒng)通知應用程序發(fā)生了錯誤。作為應用程序,應該在每次內存應用后檢查返回值是否為0。如果是,說明出了問題,要采取一些措施來挽救,增強了程序的“健壯性”。如果應用程序不檢查這個錯誤,它會根據“思維慣性”將這個值視為分配給它的可用光標,并在后續(xù)執(zhí)行中繼續(xù)使用這個內存。真正的0地址存儲區(qū)存儲的是計算機系統(tǒng)中最重要的“中斷描述符表”,是絕對不允許應用程序使用的。在沒有保護機制的操作系統(tǒng)(如DOS)中,向該地址寫入數(shù)據會導致立即崩潰,而在健壯的操作系統(tǒng)(如Windows)中,該操作會立即被系統(tǒng)的保護機制捕獲。因此,操作系統(tǒng)將強制關閉故障應用程序,以防止其錯誤擴大。此時會出現(xiàn)上述內存無法“讀取”的錯誤,引用的內存地址為“0x00000000”。內存分配失敗的原因有很多,比如內存不足,系統(tǒng)函數(shù)版本不匹配等。所以這種分配失敗往往發(fā)生在操作系統(tǒng)使用時間較長,安裝了多種應用程序(包括不小心安裝的病毒程序),大量系統(tǒng)參數(shù)和系統(tǒng)文件被更改之后。
在使用動態(tài)分配的應用程序中,有時會出現(xiàn)這樣的情況:程序試圖讀寫“應該可用”的內存,但不知何故,原本應該可用的游標卻失敗了??赡苁恰拔彝恕毕虿僮飨到y(tǒng)請求分配,也可能是程序本身在某個時候注銷了這個內存而“沒注意”等等。被注銷的內存被系統(tǒng)收回,其訪問權限不再屬于應用,因此讀寫操作也會觸發(fā)系統(tǒng)的保護機制。企圖“違法”的程序,唯一的結局就是被操作終止,所有資源被收回。計算機世界的法律還是比人類有效和嚴厲得多!這樣的情況屬于程序本身的BUG,你經常可以在一個特定的操作序列中重現(xiàn)錯誤。無效光標不一定是0,所以錯誤提示中的內存地址不一定是“0x00000000”,也可以是其他隨機數(shù)。
首先,建議:
1.檢查系統(tǒng)中是否有木馬或病毒。這類程序為了控制系統(tǒng),往往不負責任地修改系統(tǒng),導致操作系統(tǒng)異常。我們要時刻加強信息安全意識,千萬不要對來源不明的可執(zhí)行程序感到好奇。
2.更新操作系統(tǒng),并讓操作系統(tǒng)的安裝程序復制正確版本的系統(tǒng)文件并校正系統(tǒng)參數(shù)。有時候操作系統(tǒng)本身也會有bug。注意安裝官方發(fā)布的升級程序。
3.盡量用最新的正式版應用,測試版和試用版,都會有bug。
4.刪除并重新創(chuàng)建Winnt\System32\Wbem\Repository文件夾中的文件:右鍵單擊桌面上的“我的電腦”,然后單擊“管理”。在“服務和應用程序”下,單擊“服務”,然后關閉并停止windows management instrumentation服務。刪除Winnt\System32\Wbem\Repository文件夾中的所有文件。請在刪除之前創(chuàng)建這些文件的備份副本。)打開服務和應用程序,單擊服務,然后打開并啟動Windows Management Instrumentation服務。當該服務重新啟動時,將根據以下注冊表項中提供的信息重新創(chuàng)建這些文件:HKEY _本地_機器\軟件\ Microsoft \ WBEM \ CIMOM \ autorecovermofs。
這里有一些例子供你分析:
例如:指令0x0a8ba9ef引用的內存0x03713644或指令0x70dcf39f引用的內存0x00000000出現(xiàn)在IE瀏覽器中。存儲器不能被“讀取”。要終止程序,請單擊“確定”消息框。單擊“確定”后,消息框“出現(xiàn)內部錯誤,您正在使用的一個窗口即將關閉”再次出現(xiàn)。關閉這個提示信息后,IE瀏覽器也關閉了。解決方法:
1.開始-運行窗口,輸入“regsvr32 actxprxy.dll”并回車,這時會出現(xiàn)一個信息對話框“actxprxy.dll的dllregisterserver成功”,確認。依次運行以下命令。(有人說這個方法沒必要,但是重新注冊那些。dll不會傷害系統(tǒng)。反正從多方入手就夠解決問題了。)
shdocvw.dll注冊服務商32
oleaut32.dll注冊服務商32
actxprxy.dll注冊服務商32
mshtml.dll注冊服務商32
msjava.dll注冊服務商32
browseui.dll注冊服務商32
urlmon.dll注冊服務商32
2.修復或升級IE瀏覽器,同時給系統(tǒng)打補丁。我看到有一種修復方法是把系統(tǒng)恢復到初始狀態(tài)。建議IE升級到6.0。
例2:一些應用錯誤:“0x7cd64998”指令引用了“0x14c96730”內存。存儲器不能被“讀取”。解決方案:Win XP的“預讀”技術,這是一種優(yōu)化技術,也已經在應用中使用。系統(tǒng)分析每個應用程序的前幾次啟動,然后添加描述應用程序要求的虛擬“內存映像”,并將此信息存儲在Windows\Prefetch文件夾中。一旦鏡像建立,應用軟件的加載速度大大提高。XP的預讀數(shù)據存儲最近8次系統(tǒng)啟動或應用軟件啟動的信息。建議更換虛擬內存,刪除所有*。PF文件,并讓windows再次收集程序的物理地址。
例3:雙擊XP下光盤中的“AutoRun.exe”文件,顯示“0x77f745cc”指令引用的“0x00000078”內存。該存儲器不能被寫入。要終止該程序,請單擊“確定”,但它在Windows 98中可以正常運行。解決方案:這可能是系統(tǒng)兼容性問題。對于winXP系統(tǒng),右鍵“AutoRun.exe”文件,屬性,兼容性,選擇“在兼容模式下運行此程序”,選擇“Windows 98/Me”。Win2000,如果SP打了補丁,只要啟動運行,輸入:regsvr 32 c:\ win nt \ app patch \ slayer ui.dll。右鍵單擊,屬性和兼容性選項也會出現(xiàn)。
例RealOne Gold關閉時,出現(xiàn)錯誤。以前可以正常工作,但是最近每次關閉都出現(xiàn)“0xffffffff”指令引用的“0x ffffff”內存。內存不可能是“已讀”的提示。解決方法:當使用的輸入法是微軟拼音輸入法2003,并且隱藏了語言欄(不隱藏的時候沒問題)時,關閉RealOne就會出現(xiàn)這個問題。因此,您可以在關閉RealOne之前顯示語言欄或使用任何其他輸入法作為當前輸入法來解決此問題。
例5:我的英雄超解自從上網后就玩不了了。每次都提示“0x060692f6”(每次更改)指令引用的“0xff000011”的內存無法“讀取”。請按“確定”終止程序。解決方案:嘗試重新安裝英雄超級放肆。如果會重裝,可以嘗試從官網下載相應版本的補丁。還沒有,所以我不得不嘗試另一個球員。
例6:雙擊一個游戲的快捷方式,“0x77f5cd0”指令指向“0xffffffff”內存,無法“讀取”,提示Client.dat程序錯誤。解決方法:重新安裝顯卡最新驅動,然后下載安裝DirectX9.0。
例7:朋友給我發(fā)消息,我電腦出現(xiàn)錯誤信息:“0x772b548f”指令引用的“0x00303033”內存,無法“寫入”。然后QQ自動下線,打開QQ發(fā)現(xiàn)他發(fā)的十幾條消息。解決方法:這是對方利用QQ BUG,發(fā)送了一個特殊代碼,在QQ中出錯。只要打補丁或者升級到最新版本就沒事了。
說了這么多,內存不能“讀”的原因大概可以歸納為以下幾點:
1.驅動程序不穩(wěn)定且與系統(tǒng)不兼容,這很可能是內存無法讀取或文件受保護的原因。
2.系統(tǒng)中安裝了一個或多個流氓軟件,那么IE或系統(tǒng)崩潰的幾率很大,文件保護也有可能。
3.系統(tǒng)加載的程序或系統(tǒng)運行的程序有沖突,特別是一些殺毒軟件監(jiān)控程序。
4.系統(tǒng)本身存在漏洞,容易受到網絡攻擊。
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
[復制到剪貼板]
這需要很長時間,耐心等待。
但是在整個效果出來之前也可能需要重啟。
本文到此結束,希望對大家有所幫助。
標簽: 應用程序 操作系統(tǒng) 解決方案 重新安裝