相信經常使用電腦的朋友都遇到過這樣的情況,當在操作軟體或瀏覽網頁的時候電腦突然彈出一個對話方塊,提示記憶體不能為written或者記憶體不能為read的錯誤,之後點確認後應用程式就被自動關閉了。對於記憶體不能為written或者記憶體不能為read您瞭解多少,怎麼解決呢?圍繞這個話題筆者發表下個人觀點php檔案怎麼開啟?。
出現記憶體不能為written或者記憶體不能為read一般要麼為硬體故障要麼就是軟體問題了,由於記憶體不能為written或者記憶體不能為read比較常見,如果您僅僅是偶爾遇到或者同時開啟過多程式或網頁很容易導致軟體執行出錯,導致記憶體不能為written或者記憶體不能為read錯誤發生,那麼我們可以不必過多關注,因為這種情況多時只是軟體執行出錯而已,出現的很少,關閉重開軟體即可,如果是經常出現記憶體不能為written或者記憶體不能為read故障那麼我們就需要尋找解決辦法了,方法如下:
推薦閱讀:虛擬記憶體太低怎麼辦? 虛擬記憶體最好的設定方法 什麼是實體記憶體與虛擬記憶體 實體記憶體與虛擬記憶體的關係
記憶體不能為written與記憶體不能為read的解決辦法總結
硬體方面:
一般來說,記憶體出現問題的可能性並不大,主要方面是:記憶體條壞了、記憶體質量有問題,還有就是2個不同牌子不同容量的記憶體混插,也比較容易出現不相容的情況,同時還要注意散熱問題,特別是超頻後。你可以使用MemTest
這個軟體來檢測一下記憶體,它可以徹底的檢測出記憶體的穩定度。假如是雙記憶體,而且是不同品牌的記憶體條混插或者買了二手記憶體時,出現這個問題,這時,就要檢查是不是記憶體出問題了或者和其它硬體不相容。
軟體方面:
先簡單說說原理:記憶體有個存放資料的地方叫緩衝區,當程式把資料放在其一位置時,因為沒有足夠空間,就會發生溢位現象。舉個例子:一個桶子只能將一斤的水,當放入兩斤的水進入時,就會溢位來。而系統則是在螢幕上表現出來。這個問題,經常出現在windows2000和XP系統上,Windows
2000/XP對硬體的要求是很苛刻的,一旦遇到資源死鎖、溢位或者類似Windows 98裡的非法操作,系統為保持穩定,就會出現上述情況。另外也可能是硬體裝置之間的相容性不好造成的。怎麼換電腦開機音樂? 電腦開關機音樂設定教程
【應用程式軟體自身設計的原因導致該記憶體不能為read/該記憶體不能為written】
一、應用程式沒有檢查記憶體分配失敗
程式需要一塊記憶體用以儲存資料時,就需要呼叫作業系統提供的“功能函式”來申請,有時候記憶體分配也會失敗。若應用程式沒有檢查這個錯誤,它就會按照“思維慣性”認為這個值是給它分配的可用指標,繼續在之後的執行中使用這塊記憶體。真正的0地址記憶體區儲存的是計算機系統中最重要的“中斷描述符表”,絕對不允許應用程式使用。在沒有保護機制的作業系統下(如DOS),寫資料到這個地址會導致立即當機,而在健壯的作業系統中,如Windows等,這個操作會馬上被系統的保護機制捕獲,其結果就是由作業系統強行關閉出錯的應用程式,以防止其錯誤擴大。這時候,就會出現上述的“該記憶體不能為read/該記憶體不能為written”錯誤,並指出被引用的記憶體地址為“0x00000000”。
記憶體分配失敗故障的原因很多,記憶體不夠、系統函式的版本不匹配等都可能有影響。因此,這種分配失敗多見於作業系統使用很長時間後,安裝了多種應用程式(包括無意中“安裝”的病毒程式),更改了大量的系統引數和系統檔案之後。
二、應用程式由於自身BUG引用了不正常的記憶體指標
在使用動態分配的應用程式中,有時會有這樣的情況出現:程式試圖讀寫一塊“應該可用”的記憶體,但不知為什麼,這個預料中可用的指標已經失效了。有可能是“忘記了”向作業系統要求分配,也可能是程式自己在某個時候已經登出了這塊記憶體而“沒有留意”等等。登出了的記憶體被系統回收,其訪問權已經不屬於該應用程式,因此讀寫操作也同樣會觸發系統的保護機制,企圖“違法”的程式唯一的下場就是被操作終止執行,回收全部資源,這種情況下也會有提示。計算機世界的法律還是要比人類有效和嚴厲得多啊!像這樣的情況都屬於程式自身的BUG,你往往可在特定的操作順序下重現錯誤。無效指標不一定總是0,因此錯誤提示中的記憶體地址也不一定為“0x00000000”,而是其他隨機數字()
除:該記憶體不能為read/該記憶體不能為written】
◆試用命令排除
開始-執行- 輸入cmd-- 回車,在命令提示符下輸入下面命令
for %1 in (%windir%/system32/*.dll) do regsvr32.exe /s %1 回車。
完成後,在輸入下面的
for %i in (%windir%/system32/*.ocx) do regsvr32.exe /s %i 回車。
回車後耐心等待,直到螢幕滾動停止為止,然後重啟電腦。
◆執行regedit進入登錄檔,
在HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/ShellExecuteHooks
下,應該只有一個正常的鍵值{AEB6717E-7E19-11d0-97EE-00C04FD91972},
將其他的刪除。如果還有一個(預設)不用管它,一般它為空。
【軟體工具修復“該記憶體不能為read/該記憶體不能為written”】
◆直接下載我們網站提供的修復工具,進行一鍵修復,其實工具也是執行的上面手工執行的命令,只是把它整合化而已。
修改工具下載地址:http://www.onlinedown.net/soft/112455.htm
具的原理: 就是批處理使用 regsvr32命令 將動態連結庫檔案重新註冊 (system32下的所有 .dll 和 .ocx 檔案;) 注意:由於修復工具會重新註冊
system32下的所有 .dll 和 .ocx 檔案。此操作對防毒軟體來說屬於敏感操作,所以建議使用修復工具的時候,請禁用防毒軟體,以免部分防毒誤報。另外軟體只是針對部分原因引起的記憶體不為read所做修復,不保證100%有效,大家可以試試看。
最後,總結下引起"該記憶體不能為read/該記憶體不能為written"的15個原因,如下 :
原因 解決方法
1 記憶體條壞了 更換記憶體條
2 雙記憶體不相容 使用同品牌的記憶體或只要一條記憶體
3 記憶體質量問題 更換記憶體條
4 散熱問題 加強機箱內部的散熱
5 記憶體和主機板沒插好或其他硬體不相容 重插記憶體或換個插槽
6 硬體有問題 更換硬碟
7 驅動問題 重灌驅動,如果是新系統,應先安裝主機板驅動
8 軟體損壞 重灌軟體
9 軟體有BUG 打補丁或更新到最新版本
10 軟體和系統不相容 給軟體打上補丁或是試試系統的相容模式
11 軟體和軟體之間有衝突 如果最近安裝了什麼新軟體,解除安裝了試試
12 軟體要使用其他相關的軟體有問題 重灌相關軟體,比如播放某一格式的檔案時出錯,可能是這個檔案的解碼器有問題
13 病毒問題 防毒
14 防毒軟體與系統或軟體相沖突 由於防毒軟體是進入底層監控系統的,可能與一些軟體相沖突,解除安裝試試
15 系統本身有問題 有時候作業系統本身也會有BUG,要注意安裝官方發行的更新程式,象SP的補丁,最好打上.如果還不行,重灌系統,或更換其他版本的系統。
以上大概就是目前可以引起系統提示該記憶體不能為read/該記憶體不能為written的原因。
最後,電腦配置網再將在其他網站上出現的關於“該記憶體不能為read/該記憶體不能為written”的一些案例收集如下:
【例一】:開啟IE瀏覽器或者沒過幾分鐘就會出現"0x70dcf39f"指令引用的"0x00000000"記憶體。該記憶體不能為“read”。要終止程式,請單擊“確定”的資訊框,單擊“確定”後,又出現“發生內部錯誤,您正在使用的其中一個視窗即將關閉”的資訊框,關閉該提示資訊後,IE瀏覽器也被關閉。
解決方法:修復或升級IE瀏覽器,同時打上補丁。看過其中一個修復方法是,Win2000自升級,也就是Win2000升級到Win2000,其實這種方法也就是把系統還原到系統初始的狀態下。比如你的IE升級到了6.0,自升級後,會被IE5.0代替/運用騰訊瀏覽器/
【例二】:在windows
xp下雙擊光碟裡面的“AutoRun.exe”檔案,顯示“0x77f745cc”指令引用的“0x00000078”記憶體。該記憶體不能為“written”,要終止程式,請單擊“確定”,而在Windows
98裡執行卻正常。
解決方法:這可能是系統的相容性問題,winXP的系統,右鍵“AutoRun.exe”檔案,屬性,相容性,把“用相容模式執行這個程式”項選擇上,並選擇“Windows 98/Me”。win2000如果打了SP的補丁後,只要開始,執行,輸入:regsvr32 c:/winnt/apppatch/slayerui.dll。右鍵,屬性,也會出現相容性的選項。
【例三】:RealOne
Gold關閉時出現錯誤,以前一直使用正常,最近卻在每次關閉時出現“0xffffffff”指令引用的“0xffffffff”記憶體。該記憶體不能為“read”
的提示。
解決方法:當使用的輸入法為微軟拼音輸入法2003,並且隱藏語言欄時(不隱藏時沒問題)關閉RealOne就會出現這個問題,因此在關閉RealOne之前可以顯示語言欄或者將任意其他輸入法作為當前輸入法來解決這個問題。
【例四】:我的豪傑超級解霸自從上網後就不能播放了,每次都提示“Ox060692f6”(每次變化)指令引用的“Oxff000011”記憶體不能為“read”,終止程式請按確定。
解決方法:試試重灌豪傑超級解霸,如果重灌後還會,到官方網站下載相應版本的補丁試試。還不行,只好換就用別的播放器試試了。
【例五】:雙擊一個遊戲的快捷方式,“Ox77f5cdO”指令引用“Oxffffffff”記憶體,該記憶體不能為“read”
,並且提示Client.dat程式錯誤。
解決方法:重灌顯示卡的最新驅動程式,然後下載並且安裝DirectX9.0。
【例六】:一個朋友發資訊過來,我的電腦便出現了錯誤資訊:“0*772b548f”指令引用的“0*00303033”記憶體,該記憶體不能為“written”,然後QQ自動下線,而再開啟QQ,發現了他發過來的十幾條的資訊。
解決方法:這是對方利用QQ的BUG,傳送特殊的程式碼,做QQ出錯,只要打上補丁或升級到最新版本,就沒事了。
【例七】:我的筆記本電腦用的XP系統,有時關閉網頁時會彈出tbrowser.exe遇到問題需要關閉,然後有彈出0x03e7c738指令引用的0x03e7c738記憶體,該記憶體不能為read,請問是怎麼回事?
解決方法:先查殺一下病毒,另外如果你安裝了瀏覽增強之類的軟體,請卸掉。
【例八】:從桌面或開始選單中開啟任何一個程式,
出現錯誤提示:"0x........"指令引用的"0x00000000"記憶體,該記憶體不能為"read"。省略號代表可變值。而從執行中開啟程式沒問題。
解決方法:執行regedit進入登錄檔,
在HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/ShellExecuteHooks下,應該只有一個正常的鍵值"{AEB6717E-7E19-11d0-97EE-00C04FD91972},
將其他的刪除(預設鍵值當然不要刪除)。
【例九】:我三個月前配了臺機子。系統比較不穩定,三個月內已經重灌過多次系統,四五天前剛裝過系統,可是經常隨機地出現Explorer-應用程式錯誤,“0x4a01259d“指令引用的“0x00000000"記憶體。該記憶體不能為“read"。要終止程式,請單擊“確定“。要除錯程式,請單擊“取消”。如果點確定,windows桌面就不見了。這種問題在之前的系統也出現過,不知道是不是硬體的問題?
解決方法:記憶體的相容性問題!遇到這類問題,使用者可以自行開啟機器把記憶體的位置調動一下,看問題是否可以解決,如果問題依舊,可與你的朋友調換記憶體使用。
好了介紹了這麼多,相信您也看累了,解決記憶體不能為written或者記憶體不能為read故障我們主要以軟體與硬體方面入手,軟體方法如果不好排除可以使用系統還原與重新安裝系統快速排除,硬體方面可以使用清理主機垃圾以及清理記憶體來排除,如果以上問題均解決不了,建議拿去專業電腦維修去維修,以解決記憶體不能為written或者記憶體不能為read。