當前位置:編程學習大全網 - 編程語言 - 關閉QZONE時出現0x300b4aca 指令引用的0x043daf04內存

關閉QZONE時出現0x300b4aca 指令引用的0x043daf04內存

內存不能為read、內存不能為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

原因解決方法

01 內存條壞了 更換內存條

02 雙內存不兼容 使用同品牌的內存或只要壹條內存

03 內存質量問題 更換內存條

04 散熱問題 加強機箱內部的散熱

05 內存和主板沒插好或其他硬件不兼容 重插內存或換個插槽

06 硬件有問題 更換硬盤

07 驅動問題 重裝驅動,如果是新系統,應先安裝主板驅動

08 軟件損壞 重裝軟件

09 軟件有BUG 打補丁或更新到最新版本

10 軟件和系統不兼容 給軟件打上補丁或是試試系統的兼容模式

11 軟件和軟件之間有沖突 如果最近安裝了什麽新軟件,卸載了試試

12 軟件要使用其他相關的軟件有問題 重裝相關軟件,比如播放某壹格式的文件時出錯,可能是這個文件的解碼器有問題

13 病毒問題 殺毒

14 殺毒軟件與系統或軟件相沖突 由於殺毒軟件是進入底層監控系統的,可能與壹些軟件相沖突,卸載試試

15 系統本身有問題 有時候操作系統本身也會有BUG,要註意安裝官方發行的更新程序,象SP的補丁,最好打上.如果還不行,重裝系統,或更換其他版本的系統。

16 在控制面板的添加/刪除程序中看看妳是否安裝了微軟NET.Framework,如果已經安裝了,可以考慮卸載它,當然如果妳以後在其它程序需要NET.Framework時候,可以再重新安裝。

另外,如果妳用的是ATI顯卡並且妳用的是SP2的補丁(壹些ATI的顯卡驅動需要在NET.Framework正常工作的環境下)。

這種情況妳可以找壹款不需要NET.Framework支持的ATI顯卡驅動。

如果以上兩種方法並不能完全解決問題,妳試著用壹下“IE修復”軟件,並可以查查是否有病毒之類的〔微軟NET.Framework升級到1.1版應該沒問題了〕。

1.如果發現軟件出現內存錯誤,最好卸載了再選擇其他同類軟件;

2.最好選擇正版軟件;

3.最好選擇大公司的軟件;

4.出現內存問題,要麽是軟件之間的沖突,要麽是軟件和系統之間的沖突,再要麽就是軟件和硬件不兼容,總之壹句話:該軟件設計有問題;

5.如果頻頻出現內存問題,建議最好重裝系統。可以在安裝完所有必備軟件之後馬上做壹個Ghost備份,發現問題馬上就Ghost回去,可以省去很多時間。

6.另外還有壹種可能:即硬盤出現了壞扇區。建議使用WINDOWS自帶的檢查程序進行修復。方法是:在盤符上按右鍵-屬性-開始檢查。壹定要耐心讓5個步驟都完成。

7.如果可能,最好定期用第三方軟件修復壹下磁盤壞道,但要註意備份文件,它會將硬盤格式化。,象SP的補丁,最好打上.如果還不行,重裝系統,或更換其他版本的系統。

如果是打開“我的電腦”、“我的文檔”等的時候出現上述情況,還有壹種可能,就是妳的右鍵菜單太臃腫了,此時只要清理右鍵菜單問題就解決了。

下面搜集幾個例子給大家分析:

例壹:

IE瀏覽器出現“08ba9ef”指令引用的“0x03713644” 內存,或者“0x70dcf39f”指令引用的“0x00000000”內存。該內存不能為“read”。要終止程序,請單擊“確定”的信息框,單擊“確定”後,又出現“發生內部錯誤,您正在使用的其中壹個窗口即將關閉”的信息框,關閉該提示信息後,IE瀏覽器也被關閉。

解決方法:

1、開始-運行窗口,輸入“regsvr32 actxprxy.dll”回車,接著會出現壹個信息對話 框“DllRegisterServer in actxprxy.dll succeeded”,確定。再依次運行以下命令(這個方法有人說沒必要,但重新註冊壹下那些.dll對系統也沒有壞處,反正多方下手,能解決問題就行)。

regsvr32 shdocvw.dll

regsvr32 oleaut32.dll

regsvr32 actxprxy.dll

regsvr32 mshtml.dll

regsvr32 msjava.dll

regsvr32 browseui.dll

regsvr32 urlmon.dll

2、修復或升級IE瀏覽器,同時打上系統補丁。看過其中壹個修復方法是,把系統還原到系統初始的狀態下。建議將IE升級到了6.0。

例二:

有些應用程序錯誤: “0x7cd64998” 指令參考的 “0x14c96730” 內存。該內存不能為 “read”。

解決方法:Win XP的“預讀取”技術這種最佳化技術也被用到了應用程序上,系統對每壹個應用程序的前幾次啟動情況進行分析,然後新增壹個描述套用需求的虛擬“內存映像”,並把這些信息儲存到Windows\Prefetch文件夾。

壹旦建立了映像,應用軟件的裝入速度大大提高。XP的預讀取數據儲存了最近8次系統啟動或應用軟件啟動的信息。建議將虛擬內存撤換,刪除Windows\Prefetch目錄下所有*.PF文件,讓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之前可以顯示語言欄或者將任意其他輸入法作為當前輸入法來解決這個問題。

例五:

我的豪傑超級解霸自從上網後就不能播放了,每次都提示“0x060692f6”(每次變化)指令引用的“0xff000011”內存不能為“read”,終止程序請按確定。

解決方法:試試重裝豪傑超級解霸,如果重裝後還會,到官方網站下載相應版本的補丁試試。還不行,只好換就用別的播放器試試了。

例六:

雙擊壹個遊戲的快捷方式,“0x77f5cd0”指令引用“0xffffffff”內 存,該內存不能為“read” ,並且提示Client.dat程序錯誤。

解決方法:重裝顯卡的最新驅動程序,然後下載並且安裝DirectX9.0。

例七:

壹個朋友發信息過來,我的電腦便出現了錯誤信息:“0x772b548f”指令引用的“0x00303033”內存,該內存不能為“written”,然後QQ自動下線,而再打開QQ,發現了他發過來的十幾條的信息。

解決方法:這是對方利用QQ的BUG,發送特殊的代碼,做QQ出錯,只要打上補丁或升級到最新版本,就沒事了。

附網上搜索來的解決辦法:

方法壹:

最管用、最徹底的方法是這個:壹次運行註冊所有dll

運行 輸入cmd 回車在命令提示符下輸入

for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1

這個命令輸入正確的話會看到飛快地滾屏 否則……否則失敗就是沒這效果

回車後慢慢等,相當長壹段時間,要有耐心,直到妳的指示燈不閃了再做別的,都運行完再打開看。

方法二: 這是個典型問題~~~~~引起這個問題的原因很多。壹般來講就是給系統打上補丁和更換內存、給內存換個插槽這3種方法來解決。[系統補丁只要到Microsoft Update網站在線更新就可以了]

造成這種問題的原因很多,不能單純的下結論,盡量做到以下幾點可能對妳有幫助:

1。確保使用的是未修改過的軟件(非漢化、破解版)

2。使用改軟件時盡量不要運行其他軟件。(這是個臨時文件,可能某些軟件也在使用臨時文件夾,所以產生幹擾)

3。把那些什麽桌面工具,內存整理工具通通關掉(妳至少有2個類似的工具在運行)”

處理方法: 運行regedit進入註冊表,

在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks下,

應該只有壹個正常的鍵值"{AEB6717E-7E19-11d0-97EE-00C04FD91972},將其他的刪除。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks下,

應該只有壹個正常的鍵值"{AEB6717E-7E19-11d0-97EE-00C04FD91972},將其他的刪除。

內存不能為read或written的解決方案

文章壹

使用WINDOWS XP操作系統的人有時會遇到這樣的錯誤信息:

"0X"指令引用的0x00000000內存,該內存不能"written"或“read”。

然後無論妳點擊“確定”還是“取消”,應用程序都會被關閉。

如果去請教壹些「高手」,得到的回答往往是「Windows就是這樣不穩定」之類的義憤和不屑。

其實,這個錯誤並不壹定是Windows不穩定造成的。

本文就來簡單分析這種錯誤的壹般原因。

壹、應用程序沒有檢查內存分配失敗

程序需要壹塊內存用以儲存數據時,就需要使用操作系統提供的「功能函數」來申請,

如果內存分配成功,函數就會將所新開辟的內存區地址返回給應用程序,

應用程序就可以通過這個地址使用這塊內存。這就是「動態內存分配」,

內存地址也就是編程中的「光標」。

內存不是永遠都招之即來、用之不盡的,有時候內存分配也會失敗。

當分配失敗時系統函數會返回壹個0值,這時返回值「0」已不表示新啟用的遊標,

而是系統向應用程序發出的壹個通知,告知出現了錯誤。作為應用程序,

在每壹次申請內存後都應該檢查返回值是否為0,如果是,則意味著出現了故障,

應該采取壹些措施挽救,這就增強了程序的「健壯性」。

若應用程序沒有檢查這個錯誤,它就會按照「思維慣性」認為這個值是給它分配的可用遊標,

繼續在之後的執行中使用這塊內存。

真正的0地址內存區儲存的是計算機系統中最重要的「中斷描述符表」,

絕對不允許應用程序使用。在沒有保護機制的操作系統下(如DOS),

寫數據到這個地址會導致立即當機,而在健壯的操作系統中,如Windows等,

這個操作會馬上被系統的保護機制捕獲,其結果就是由操作系統強行關閉出錯的應用程序,

以防止其錯誤擴大。這時候,就會出現上述的「寫內存」錯誤,

並指出被引用的內存地址為「0x00000000」。

內存分配失敗故障的原因很多,內存不夠、系統函數的版本不匹配等都可能有影響。

因此,這種分配失敗多見於操作系統使用很長時間後,

安裝了多種應用程序(包括無意中「安裝」的病毒程序),更改了大量的系統參數和系統檔案之後。

二、應用程序由於自身BUG引用了不正常的內存光標

在使用動態分配的應用程序中,有時會有這樣的情況出現:程序試突讀寫壹塊「應該可用」的內存,

但不知為什麽,這個預料中可用的光標已經失效了。有可能是「忘記了」向操作系統要求分配,

也可能是程序自己在某個時候已經註銷了這塊內存而「沒有留意」等等。

註銷了的內存被系統回收,其訪問權已經不屬於該應用程序,

因此讀寫操作也同樣會觸發系統的保護機制,企圖「違法」的程序唯壹的下場就是被操作終止執行,

回收全部資源。計算機世界的法律還是要比人類有效和嚴厲得多啊!

像這樣的情況都屬於程序自身的BUG,妳往往可在特定的操作順序下重現錯誤。

無效光標不壹定總是0,因此錯誤提示中的內存地址也不壹定為「0x00000000」,

而是其它隨機數字。

如果系統經常有所提到的錯誤提示,下面的建議可能會有說明 :

1.檢視系統中是否有木馬或病毒。這類程序為了控制系統往往不負責任地修改系統,

從而導致操作系統異常。平常應加強信息安全意識,對來源不明的可執行程序絕不好奇。

2.更新操作系統,讓操作系統的安裝程序重新拷貝正確版本的系統檔案、修正系統參數。

有時候操作系統本身也會有BUG,要註意安裝官方發行的升級程序。

3.試用新版本的應用程序。

Mode:將虛擬內存撤換

答案:目前為止是肯定的,也就是如在下次冷天到來時亦沒再發生,就代表這是主因

追加:

如果妳用 Ghost 恢復 OS 後建議 刪除WINDOWS\PREFETCH目錄下所有*.PF文件

因為需讓windows重新收集程序的物理地址

有些

應用程序錯誤: "0x7cd64998" 指令參考的 "0x14c96730" 內存。該內存不能為 "read"

推論是此原因

源由:

Win XP的「預讀取」技術

這種最佳化技術也被用到了應用軟件上,系統對每壹個應用軟件的前幾次啟動情況進行分析,

然後新增壹個描述套用需求的虛擬「內存映像」,並把這些信息儲存到WINDOWSPREFETCH數據夾。

壹旦建立了映像,應用軟件的裝入速度大大提高。

XP的預讀取數據儲存了最近8次系統啟動或應用軟件啟動的信息。

後敘:目前此方法亦是獨步網絡的(其碼自己針對此問題查了許久),也是常見問題,原本幾乎每天睡前關閉軟件時壹些程序都會發生...read...

現在就沒發生了。

文章二

運行某些程序的時候,有時會出現內存錯誤的提示,然後該程序就關閉。

“0x”指令引用的“0x”內存。該內存不能為“read”。

“0x”指令引用的“0x”內存,該內存不能為“written”。

不知妳出現過類似這樣的故障嗎?(0x後面內容有可能不壹樣。)

壹般出現這個現象有方面的,壹是硬件,即內存方面有問題,二是軟件,這就有多方面的問題了。

下面先說說硬件:

壹般來說,內存出現問題的可能性並不大,主要方面是:內存條壞了、內存質量有問題,還有就是2個不同牌子不同容量的內存混插,也比較容易出現不兼容的情況,同時還要註意散熱問題,特別是超頻後。妳可以使用MemTest 這個軟件來檢測壹下內存,它可以徹底的檢測出內存的穩定度。

假如妳是雙內存,而且是不同品牌的內存條混插或者買了二手內存時,出現這個問題,這時,妳就要檢查是不是內存出問題了或者和其它硬件不兼容。

如果都沒有,那就從軟件方面排除故障了。

先簡單說說原理:內存有個存放數據的地方叫緩沖區,當程序把數據放在其壹位置時,因為沒有足夠空間,就會發生溢出現象。舉個例子:壹個桶子只能將壹斤的水,當妳放入兩斤的水進入時,就會溢出來。而系統則是在屏幕上表現出來。這個問題,經常出現在windows2000和XP系統上,Windows 2000/XP對硬件的要求是很苛刻的,壹旦遇到資源死鎖、溢出或者類似Windows 98裏的非法操作,系統為保持穩定,就會出現上述情況。另外也可能是硬件設備之間的兼容性不好造成的。

  • 上一篇:幫忙翻譯這個文章(英—中)
  • 下一篇:誰知道塞內卡學院?
  • copyright 2024編程學習大全網