Ⅰ 打開游戲的時候,總出現應用程序錯誤是怎麼回事
使用Windows操作系統的人有時會遇到這樣的錯誤信息: x0dx0ax0dx0a「「0X????????」指令引用的「0x00000000」內存,該內存不能為「read」或「written」」,然後應用程序被關閉。 x0dx0ax0dx0a如果去請教一些「高手」,得到的回答往往是「Windows就是這樣不穩定」之類的義憤和不屑。其實,這個錯誤並不一定是Windows不穩定造成的。本文就來簡單分析這種錯誤的一圓虛般原因。 x0dx0ax0dx0a一、應用程序沒有檢查內存分配失敗 x0dx0ax0dx0a程序需要一塊內存用以儲存數據時,就需要宴腔橡使用操作系統提供的「功能函數」來申請,如果內存分配成功,函數就會將所新開辟的內存區地址返回給應用程序,應用程序就可以通過這個地址使用這塊內存。這就是「動態內存分配」,內存地址也就是編程中的「游標」。內存不是永遠都招之即來、用之不盡的,有時候內存分配也會失敗。當分配失敗時系統函數會返回一個0值,這時返回值「0」已不表示新啟用的游標,而是系統向應用程序發出的一個通知,告知出現了錯誤。作為應用程序,在每一次申請內存後都應該檢查返回值是否為0,如果是,則意味著出現了故障,應該採取一些措施挽救,這就增強了程序的「健壯性」。若應用程序沒有檢查這個錯誤,它就會按照「思維慣性」認為這個值是給它分配的可用游標,繼續在之後的執行中使用這塊內存。真正的0地址內存區儲存的是計算機系統中最重要的「中斷描述符表」,絕對不允許應用程序使用。在沒有保護機制的操作系統下(如DOS),寫數據到這個地址會導致立即當機,而在健壯的操作系統中,如Windows等,這個操作會馬上被系統的保護機制捕獲,其結果就是由操作系統強行關閉出錯的應用程序,以防止其錯誤擴大。這時候,就會出現上述的「寫內存」錯誤,並指出被引用的內存地址為「0x00000000」。內存分配失敗故障的原因很多,內存不夠、系統函數的版本不匹配等都可能有影響。因此,這種分配失敗多見於操作系統使用很長時間後,安裝了多種應用程序(包括無意中「安裝」的病毒程序),更改了大量的系統參數和系統檔案之後。 x0dx0ax0dx0a二、應用程序由於自身BUG引用了不正常的內存游標 x0dx0ax0dx0a在使用動態分配的應用程序中,有時會有這樣的情況出現:程序試突讀寫一塊「應該可用」的內存,但不知為什麼,這個預料中可用的游標已經失效了。有可能是「忘記了」向操作系統要求分配,也可能是程序自己在某個時候已經注銷了這塊內存而「沒有留意」等等。注銷了的內存被系統回收,其訪問權已經不屬於該應用程序,因此讀寫操作也同樣會觸發系統的保護機制,企圖「違法」的程序唯一的下場就是被操作終止執行,回收全部資源。計算機世界的法律還是要比人類有效和嚴厲得多啊!像這樣的情況都屬於程序自身的BUG,你往往可在特定晌旁的操作順序下重現錯誤。無效游標不一定總是0,因此錯誤提示中的內存地址也不一定為「0x00000000」,而是其它隨機數字。如果系統經常有所提到的錯誤提示,下面的建議可能會有說明 : x0dx0ax0dx0a1.檢視系統中是否有木馬或病毒。這類程序為了控制系統往往不負責任地修改系統, x0dx0ax0dx0a從而導致操作系統異常。平常應加強信息安全意識,對來源不明的可執行程序絕不好奇。 x0dx0ax0dx0a2.更新操作系統,讓操作系統的安裝程序重新拷貝正確版本的系統檔案、修正系統參數。 x0dx0ax0dx0a有時候操作系統本身也會有BUG,要注意安裝官方發行的升級程序。 x0dx0ax0dx0a3.試用新版本的應用程序。 x0dx0ax0dx0aMode: x0dx0ax0dx0a將虛擬內存撤換 x0dx0ax0dx0a答案: x0dx0ax0dx0a目前為止是肯定的,也就是如在下次冷天到來時亦沒再發生,就代表這是主因 x0dx0ax0dx0a追加: x0dx0ax0dx0a如果你用 Ghost 恢復 OS 後建議 刪除WINDOWS\PREFETCH目錄下所有*.PF文件因為需讓windows重新收集程序的物理地址 x0dx0ax0dx0a有些應用程序錯誤 "0x7cd64998" 指令參考的 "0x14c96730" 內存。該內存不能為 "read"推論是此原因 x0dx0ax0dx0a源由: x0dx0ax0dx0aWin XP的「預讀取」技術 x0dx0ax0dx0a這種最佳化技術也被用到了應用軟體上,系統對每一個應用軟體的前幾次啟動情況進行分析,然後新增一個描述套用需求的虛擬「內存映像」,並把這些信息儲存到WINDOWSPREFETCH數據夾。一旦建立了映像,應用軟體的裝入速度大大提高。XP的預讀取數據儲存了最近8次系統啟動或應用軟體啟動的信息。 x0dx0ax0dx0a後敘: x0dx0ax0dx0a目前此方法亦是獨步網路的(其碼自己針對此問題查了許久),也是常見問題,原本幾乎每天睡前關閉軟體時一些程序都會發生...read... x0dx0ax0dx0a現在就沒發生了。 x0dx0ax0dx0a【文章二】 x0dx0ax0dx0a運行某些程序的時候,有時會出現內存錯誤的提示(0x後面內容有可能不一樣),然後該程序就關閉。 x0dx0ax0dx0a「0x????????」指令引用的「0x????????」內存。該內存不能為「read」。 x0dx0ax0dx0a「0x????????」指令引用的「0x????????」內存,該內存不能為「written」。 x0dx0ax0dx0a不知你出現過類似這樣的故障嗎? x0dx0ax0dx0a一般出現這個現象有方面的,一是硬體,即內存方面有問題,二是軟體,這就有多方面的問題了。 x0dx0ax0dx0a下面先說說硬體: x0dx0ax0dx0a一般來說,內存出現問題的可能性並不大,主要方面是:內存條壞了、內存質量有問題,還有就是2個不同牌子不同容量的內存混插,也比較容易出現不兼容的情況,同時還要注意散熱問題,特別是超頻後。你可以使用MemTest 這個軟體來檢測一下內存,它可以徹底的檢測出內存的穩定度。 x0dx0ax0dx0a假如你是雙內存,而且是不同品牌的內存條混插或者買了二手內存時,出現這個問題,這時,你就要檢查是不是內存出問題了或者和其它硬體不兼容。 x0dx0ax0dx0a如果都沒有,那就從軟體方面排除故障了。 x0dx0ax0dx0a先簡單說說原理:內存有個存放數據的地方叫緩沖區,當程序把數據放在其一位置時,因為沒有足夠空間,就會發生溢出現象。舉個例子:一個桶子只能將一斤的水,當你放入兩斤的水進入時,就會溢出來。而系統則是在屏幕上表現出來。這個問題,經常出現在windows2000和XP系統上,Windows 2000/XP對硬體的要求是很苛刻的,一旦遇到資源死鎖、溢出或者類似Windows 98里的非法操作,系統為保持穩定,就會出現上述情況。另外也可能是硬體設備之間的兼容性不好造成的。 x0dx0ax0dx0a下面我從幾個例子給大家分析: x0dx0ax0dx0a例一:打開IE瀏覽器或者沒過幾分鍾就會出現"0x70dcf39f"指令引用的"0x00000000"內存。該內存不能為「read」。要終止程序,請單擊「確定」的信息框,單擊「確定」後,又出現「發生內部錯誤,您正在使用的其中一個窗口即將關閉」的信息框,關閉該提示信息後,IE瀏覽器也被關閉。 解決方法:修復或升級IE瀏覽器,同時打上補丁。看過其中一個修復方法是,Win2000自升級,也就是Win2000升級到Win2000,其實這種方法也就是把系統還原到系統初始的狀態下。比如你的IE升級到了6.0,自升級後,會被IE5.0代替。 x0dx0ax0dx0a例二:在windows xp下雙擊光碟裡面的「AutoRun.exe」文件,顯示「0x77f745cc」指令引用的「0x00000078」內存。該內存不能為「written」,要終止程序,請單擊「確定」,而在Windows 98里運行卻正常。 解決方法:這可能是系統的兼容性問題,winXP的系統,右鍵「AutoRun.exe」文件,屬性,兼容性,把「用兼容模式運行這個程序」項選擇上,並選擇「Windows 98/Me」。win2000如果打了SP的補丁後,只要開始,運行,輸入:regsvr32 c:\winnt\apppatch\slayerui.dll。右鍵,屬性,也會出現兼容性的選項。 x0dx0ax0dx0a例三:RealOne Gold關閉時出現錯誤,以前一直使用正常,最近卻在每次關閉時出現「0xffffffff」指令引用的「0xffffffff」內存。該內存不能為「read」 的提示。 解決方法:當使用的輸入法為微軟拼音輸入法2003,並且隱藏語言欄時(不隱藏時沒問題)關閉RealOne就會出現這個問題,因此在關閉RealOne之前可以顯示語言欄或者將任意其他輸入法作為當前輸入法來解決這個問題。 x0dx0ax0dx0a例四:我的豪傑超級解霸自從上網後就不能播放了,每次都提示「0x060692f6」(每次變化)指令引用的「0xff000011」內存不能為「read」,終止程序請按確定。 解決方法:試試重裝豪傑超級解霸,如果重裝後還會,到官方網站下載相應版本的補丁試試。還不行,只好換就用別的播放器試試了。 x0dx0ax0dx0a例五:雙擊一個游戲的快捷方式,「0x77f5cd0」指令引用「0xffffffff」內 存,該內存不能為「read」 ,並且提示Client.dat程序錯誤。 解決方法:重裝顯卡的最新驅動程序,然後下載並且安裝DirectX9.0。 x0dx0ax0dx0a例六:一個朋友發信息過來,我的電腦便出現了錯誤信息:「0x772b548f」指令引用的「0x00303033」內存,該內存不能為「written」,然後QQ自動下線,而再打開QQ,發現了他發過來的十幾條的信息。 解決方法:這是對方利用QQ的BUG,發送特殊的代碼,做QQ出錯,只要打上補丁或升級到最新版本,就沒事了。 x0dx0ax0dx0a【原因 解決方法】 x0dx0ax0dx0a1 內存條壞了 更換內存條 x0dx0ax0dx0a2 雙內存不兼容 使用同品牌的內存或只要一條內存 x0dx0ax0dx0a3 內存質量問題 更換內存條 x0dx0ax0dx0a4 散熱問題 加強機箱內部的散熱 x0dx0ax0dx0a5 內存和主板沒插好或其他硬體不兼容 重插內存或換個插槽 x0dx0ax0dx0a6 硬體有問題 更換硬碟 x0dx0ax0dx0a7 驅動問題 重裝驅動,如果是新系統,應先安裝主板驅動 x0dx0ax0dx0a8 軟體損壞 重裝軟體 x0dx0ax0dx0a9 軟體有BUG 打補丁或更新到最新版本 x0dx0ax0dx0a10 軟體和系統不兼容 給軟體打上補丁或是試試系統的兼容模式 x0dx0ax0dx0a11 軟體和軟體之間有沖突 如果最近安裝了什麼新軟體,卸載了試試 x0dx0ax0dx0a12 軟體要使用其他相關的軟體有問題 重裝相關軟體,比如播放某一格式的文件時出錯,可能是這個文件的解碼器有問題 x0dx0ax0dx0a13 病毒問題 殺毒 x0dx0ax0dx0a14 殺毒軟體與系統或軟體相沖突 由於殺毒軟體是進入底層監控系統的,可能與一些軟體相沖突,卸載試試 x0dx0ax0dx0a15 系統本身有問題 有時候操作系統本身也會有BUG,要注意安裝官方發行的更新程序,象SP的補丁,最好打上.如果還不行,重裝系統,或更換其他版本的系統。 x0dx0ax0dx0a〔又一說〕 x0dx0ax0dx0a在控制面板的添加/刪除程序中看看你是否安裝了微軟NET.Framework,如果已經安裝了,可以考慮卸載它,當然如果你以後在其它程序需要NET.Framework時候,可以再重新安裝。 x0dx0ax0dx0a另外,如果你用的是ATI顯卡並且你用的是SP2的補丁(一些ATI的顯卡驅動需要在NET.Framework正常工作的環境下)。這種情況你可以找一款不需要NET.Framework支持的ATI顯卡驅動。 x0dx0ax0dx0a如果以上兩種方法並不能完全解決問題,你試著用一下「IE修復」軟體,並可以查查是否有病毒之類的。 x0dx0ax0dx0a〔微軟NET.Framework升級到1.1版應該沒問題了〕 x0dx0ax0dx0a〔還有一說〕 x0dx0ax0dx0a方法一: x0dx0ax0dx0a微軟新聞組的朋友指點:開始--運行:regsvr32 jscript.dll x0dx0ax0dx0a開始--運行:regsvr32 vbscript.dll x0dx0ax0dx0a不過沒解決---但提供了路子-----一次運行注冊所有dll x0dx0ax0dx0a搜索查找到方法如下: x0dx0ax0dx0a運行 輸入cmd 回車在命令提示符下輸入 x0dx0ax0dx0afor %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1 x0dx0ax0dx0a這個命令老兄你慢慢輸 輸入正確的話會看到飛快地滾屏 否則??否則失敗就是沒這效果。回車後慢慢等(需要點時間1-2分鍾) 都運行完再打開看 x0dx0ax0dx0a方法二: x0dx0ax0dx0a這是個典型問題~~~~~引起這個問題的原因很多。一般來講就是給系統打上補丁和更換內存、給內存換個插槽這3種方法來解決。[系統補丁只要到Microsoft Update網站在線更新就可以了] x0dx0ax0dx0a(偶見) x0dx0ax0dx0a造成這種問題的原因很多,不能單純的下結論,盡量做到以下幾點可能對你有幫助: x0dx0ax0dx0a1。確保使用的是未修改過的軟體(非漢化、破解版) x0dx0ax0dx0a2。使用改軟體時盡量不要運行其他軟體。(這是個臨時文件,可能某些軟體也在使用臨時文件夾,所以產生干擾) x0dx0ax0dx0a3。把那些什麼桌面工具,內存整理工具通通關掉(你至少有2個類似的工具在運行)」 x0dx0ax0dx0a處理方法: x0dx0ax0dx0a運行regedit進入注冊表, 在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks下,應該只有一個正常的鍵值"{AEB6717E-7E19-11d0-97EE-00C04FD91972}, 將其他的刪除。 x0dx0ax0dx0a〔我個人的最後解決和看法〕 x0dx0ax0dx0a我今天嘗試了多種辦法,最後我發現問題出在微軟的NET.Framework上面。我升級了這個軟體,並打齊了補丁,短暫平安後,有出現「內存不能為read」的情況。後來我受上面文章的啟發,卸載了微軟的NET.Framework1.0和1.1,世界太平了。 x0dx0ax0dx0a另外:如果是打開「我的電腦」、「我的文檔」等的時候出現上述情況,還有一種可能,就是你的右鍵菜單太臃腫了,此時只要清理右鍵菜單問題就解決了。 x0dx0ax0dx0a〔試驗的結果〕 x0dx0ax0dx0a上面的方法,最管用、最徹底的方法是這個: x0dx0ax0dx0a運行 輸入cmd 回車在命令提示符下輸入 x0dx0ax0dx0afor %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1 x0dx0ax0dx0a【技巧】如果怕輸入錯誤的話,可以復制這條指令,然後在命令提示框點擊左上角的c:\,使用下面的「編輯-粘貼」功能就不容易輸錯了。在飛速滾屏完全靜止之後,別著急啟動其他程序,先耐心等一會兒,因為此時dll們還在找位置。直到你的指示燈不閃了再做別的。
Ⅱ 為什麼一打開游戲(我打開的是魔獸爭霸)就顯示應用程序錯誤(內詳)
可能程序不兼容, 先排查系統與游戲沖突、不兼容,重新做個較成熟的系統。
排除系統原因後排查游戲文件是否齊全、是否需要更新。
以上均排查過還閃退的,請排查顯卡驅動是否需要更新,以及顯卡驅動版是否最新。
Ⅲ 下了游戲 打開就顯示 應用程序無法正常啟動(0xc0000022).請單擊確定關閉應用程序
造成該現帆數象的原因是你的機子的windows/system32/下的某個.dll文件沒有被注冊;
如果你能夠知道哪個文件沒有被注冊的話就直接進行以下操作:開始--運行--輸入cmd並回車--輸入野轎困regsvr32.exe /s 再加上路徑名稱(一般為regsvr32.exe /s C:\WINDWOS\頌念system32\某個.dll);
如果不知道是哪個.dll文件沒有被注冊,
開始--運行--輸入cmd並回車-->輸入for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
Ⅳ 下了游戲 打開就顯示 應用程序無法正常啟動(0xc0000022).請單擊確定關閉應用程序
1、微軟IE緩沖溢出漏洞引起
2、內存或歷絕虛擬內存地址使用沖突造成程序的運行需要分配一定的內存地址給程序使用,當程序結束時釋放留出空間讓給新的程序使用,win是多任務的系統有時前程序未結束 又有新的任務開始到底要多少內存或虛擬內存來保證我們同時運行的工作任務呢?也許win在這個問題上沒弄好,所以有此錯誤常常發生,一般運行大型軟體或多媒體後出現這種情況
3、劣質內存條也會出現這個問題一般來說,內存出現問題的可能性並不大,主要方面是:內存條壞了、內存質量有問題,還有就是2個不同牌子不同容量的內存混插,也比較容易出現不兼容的情況,同時還要注意散熱問題,特別是超頻後。你可以使用MemTest這個軟體來檢測一下內存,它可以徹底的檢測出內存的穩定度。假如你是雙內存,而且是不同品牌的內存條混插或者買了二手內存時,出現這個問題,這時,你就要檢查是不是內存出問題了或者和其它硬體不兼容。
4、微軟WINDOWS系統的漏洞,windows把內存地址0X00000000到0X0000ffff指定為分配null指針的地址范圍,如果程序試圖訪問這一地址,則認為是錯誤。c/c++編寫的程序通常不進行嚴格的錯誤檢查,當採用malloc來分配內存而可供分配的地址空間不夠的情況下返回null指針。但是代碼不檢查這種錯誤,認為地址分配已經成功,於是就訪問0X00000000的地址,於是就發生內存違規訪問,同時該進程被終止。ASCII字元填充組成的pif文件時會出現以下情況:一個非法的pif文件(用ascii字元\''x\''填充)至少要369位元組,系統才認為是一個合法的pif文件,才會以pif的圖標[pifmgr.dll,0]顯示,才會在屬性里有程序、字體、內存、屏幕」等內容。而且僅僅當一個非pif文件的大小是369位元組時察看屬性的「程序」頁時,不會發生程序錯誤,哪怕是370位元組也不行。當對一個大於369位元組的非法pif文件察看屬性的「程序」頁時,Explorer會出錯,提示:\''***\''指令引用的\''***\''內存。該內存不能為\''read\'' ,問題出在pif文件的16進制地址:0x00000181[0x87]0x00000182[0x01]和 0x00000231[0xC3]0x00000232[0x02]即使是一個合法pif文件,只要改動這四處的任意一處,也會引起程前祥序錯誤。而只要把0x00000181和0x00000182的值改為[0xFF][0xFF],那麼其它地址任意更改都不會引起錯誤。
5、可能沒有完全正確安裝apache服務,且啟動了它的原故; 把服務中OracleOraHomeXXHTTPServer改成停 止
6、應用程序沒有檢查內存分配失敗程序需要一塊內存用以保存數據時,就需要調用操作系統提供的「功能函數」來申請,如果內存分配成功,函數就會將所新開辟的內存區地址返回給應用程序,應用程序就可以通過這個地址使用這塊內存。這就是「動態內存分配」,內存地址也就是編程中的「指針」。內存不是永遠都招之即來、用之不盡的,有時候內存分配也會失敗。當分配失敗時系統函數會返回一個0值,這時返回值「0」已不表示新啟用的指針,而是系統向應用程序發出的一個通知,告知出現了錯誤。作為應用程序,在每一次申請內存後都應該檢查返回值是否為0,如果是,則意味著出現了故障,應該採取一些措施挽救,這就增強了程序的「健壯性」。若應用程序沒有檢查這個錯誤,它就會按照「思維慣性」認為這個值是給它分配的可用指針,繼續在之後的運行中使用這塊內存。真正的0地址內存區保存的是計算機系統中最重要的「中斷描述符表」,絕對不允許應用程序使用。在沒有保護機制的操作系統下(如DOS),寫數據到這個地址會導致立即死機,而在健壯的操作系統中,如Windows等,這個操作會馬上被系統的保護機制捕獲,其結果就是由操作系統強行關閉出錯的應用程序,以防止其錯誤擴大。這時候,就會出現上述的「寫內存」錯誤,並指出被引用的內存地址為「0x00000000」。內存分配失敗故障的原因很多,內存不夠、系統函數的版本不匹配等都可能有影響。因此,這種分配失敗多見於操作系慧爛搏統使用很長時間後,安裝了多種應用程序(包括無意中「安裝」的病毒程序),更改了大量的系統參數和系統文件之後。
7、應用程序由於自身BUG引用了不正常的內存指針在使用動態分配的應用程序中,有時會有這樣的情況出現:程序試圖讀寫一塊「應該可用」的內存,但不知為什麼,這個預料中可用的指針已經失效了。有可能是「忘記了」向操作系統要求分配,也可能是程序自己在某個時候已經注銷了這塊內存而「沒有留意」等等。注銷了的內存被系統回收,其訪問權已經不屬於該應用程序,因此讀寫操作也同樣會觸發系統的保護機制,企圖「違法」的程序唯一的下場就是被操作終止運行,回收全部資源。計算機世界的法律還是要比人類有效和嚴厲得多啊!像這樣的情況都屬於程序自身的BUG,你往往可在特定的操作順序下重現錯誤。無效指針不一定總是0,因此錯誤提示中的內存地址也不一定為「0x00000000」,而是其他隨機數字。
如果系統經常有所提到的錯誤提示,下面的建議可能會有幫助:
1.查看系統中是否有木馬或病毒。這類程序為了控制系統往往不負責任地修改系統,從而導致操作系統異常。平常應加強信息安全意識,對來源不明的可執行程序絕不好奇。
2.更新操作系統,讓操作系統的安裝程序重新拷貝正確版本的系統文件、修正系統參數。有時候操作系統本身也會有BUG,要注意安裝官方發行的升級程序。
3.試用新版本的應用程序。
Ⅳ 游戲打開顯示應用程序錯誤是怎麼回事
你好,電腦玩游戲出現,應用程序:「該內存不能為read或written」!偶然出現點【取消】!
這是你下載的「游戲軟體」與電腦「內存」有沖突!(答案原創,原作者:力王歷史)
1。游戲帶木馬或病毒!(殺毒軟體,全盤掃描與自定義掃描,重啟後,隔離區,徹底刪除)
2。游戲與其它游戲有沖突!(同類軟體,互不兼容!開始菜單,程序,卸載,只留一個游戲)
3。游戲與其它軟體沖突!(如:沖突播放器或某些殺毒軟體過於敏感,卸載播放器或殺毒,重裝游戲)
4。游戲版本電腦顯卡不支持!(下載:驅動人生或驅動精靈,更新顯卡驅動)
5。游戲缺少必要的dll文件或游戲補丁!(dll文件,360系統急救箱,dll文件恢復,添加恢復!游戲補丁建議去:官網下載!)
6。游戲帶惡評插件!(可以用360安全衛士或金山衛士,或可牛免費殺毒,掃描插件,立即清理)
7。游戲版本,不適合當前系統運行!(開啟「兼容模式」或更換游戲版本試試,建議去下載:正規官網游戲!)
8。游戲有bug或錯誤或帶可疑啟動木馬!(試試:360系統急救箱,系統修復,全選,立即修復!網路修復,開始修復!
再點:開始急救!重啟後,點開「文件恢復區」,全選,徹底刪除文件)!
9。再不行,開始菜單,運行 ,輸入cmd, 回車,在命令提示符下輸入(復制即可) :
for %1 in (%windir%\system32\*.ocx) do regsvr32 /s %1
粘貼,回車,完畢後,再輸入:
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
回車!直到屏幕滾動停止為止,重啟電腦!
10。實在不行,還原系統,重裝游戲試試!
Ⅵ 為什麼我一打開一個游戲就顯示應用程序錯誤謝謝
下載的「游戲軟體」和電腦中的「內存」有沖突了。
調試方案如下:
1、去網上下載一個「read修復工具」修復一下,游戲就可以玩了(注意,查殺一下病毒與木馬,網上有的「read工具」,有病毒與木馬)。
2、電腦里有木馬或病毒干擾,下載「360安全衛士」和「360殺毒雙引擎版」,建議「全盤掃描」病毒和木馬,修補電腦上的漏洞。
3、你下載的「播放器」,或「聊天軟體」,或「IE瀏覽器」,或「游戲」的程序不穩定,或者「版本太舊」。建議卸掉,下載新的,或將其升級為「最新版本」。
4、就是你安裝了兩款或兩款以上的同類軟體(如:兩款播放器,兩款qq,或多款瀏覽器,多款殺毒軟體,多款網游等等)。它們在一起不「兼容」,卸掉「多餘」的那一款。
5、卸載方法:你在電腦左下角「開始」菜單里找到「強力卸載電腦上的軟體」,找到多餘的那款卸掉。
卸完了再「強力清掃」。
或者「360安全衛士」,「軟體管家」,點開,第4項:「軟體卸載」,點開,找到「多餘」和「類似」的軟體卸載。如:「播放器」,點開,留下「暴風」,卸載「快播」。如:「下載」:點開,留下「迅雷」,卸載「快車」。(看準了再卸,別把有用的卸了)。
6、如果以上方法不行,打開「360安全衛士」,「查殺木馬」里的:「360系統急救箱」。急救系統,刪除「可疑啟動項」與木馬,立即重啟。再來到「文件恢復區」,徹底刪除文件。「系統修復」,全選,立即修復。「網路修復」,開始修復,重啟電腦。
7、再不行,開始菜單,運行
,輸入cmd,
回車,在命令提示符下輸入(復制即可)
:
for
%1
in
(%windir%\system32\*、ocx)
do
regsvr32
/s
%1
粘貼,回車,再輸入:
for
%1
in
(%windir%\system32\*、dll)
do
regsvr32、exe
/s
%1
回車。直到屏幕滾動停止為止,重啟電腦。
8、下載:驅動人生,更新「顯卡驅動」。
9、下載合適的游戲補丁,不行,只能更換游戲版本。
10、實在不行,重裝游戲,或還原系統。或重裝系統。
Ⅶ 打開游戲的時候,總出現應用程序錯誤是怎麼回事
使用Windows操作系統的人有時會遇到這樣的錯誤信息:
「「0X????????」指令引用的「0x00000000」內存,該內存不能為「read」或「written」」,然後應用程序被關閉。
如果去請教一些「高手」,得到的回答往往是「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????????」指令引用的「0x????????」內存。該內存不能為「read」。
「0x????????」指令引用的「0x????????」內存,該內存不能為「written」。
不知你出現過類似這樣的故障嗎?
一般出現這個現象有方面的,一是硬體,即內存方面有問題,二是軟體,這就有多方面的問題了。
下面先說說硬體:
一般來說,內存出現問題的可能性並不大,主要方面是:內存條壞了、內存質量有問題,還有就是2個不同牌子不同容量的內存混插,也比較容易出現不兼容的情況,同時還要注意散熱問題,特別是超頻後。你可以使用MemTest 這個軟體來檢測一下內存,它可以徹底的檢測出內存的穩定度。
假如你是雙內存,而且是不同品牌的內存條混插或者買了二手內存時,出現這個問題,這時,你就要檢查是不是內存出問題了或者和其它硬體不兼容。
如果都沒有,那就從軟體方面排除故障了。
先簡單說說原理:內存有個存放數據的地方叫緩沖區,當程序把數據放在其一位置時,因為沒有足夠空間,就會發生溢出現象。舉個例子:一個桶子只能將一斤的水,當你放入兩斤的水進入時,就會溢出來。而系統則是在屏幕上表現出來。這個問題,經常出現在windows2000和XP系統上,Windows 2000/XP對硬體的要求是很苛刻的,一旦遇到資源死鎖、溢出或者類似Windows 98里的非法操作,系統為保持穩定,就會出現上述情況。另外也可能是硬體設備之間的兼容性不好造成的。
下面我從幾個例子給大家分析:
例一:打開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之前可以顯示語言欄或者將任意其他輸入法作為當前輸入法來解決這個問題。
例四:我的豪傑超級解霸自從上網後就不能播放了,每次都提示「0x060692f6」(每次變化)指令引用的「0xff000011」內存不能為「read」,終止程序請按確定。 解決方法:試試重裝豪傑超級解霸,如果重裝後還會,到官方網站下載相應版本的補丁試試。還不行,只好換就用別的播放器試試了。
例五:雙擊一個游戲的快捷方式,「0x77f5cd0」指令引用「0xffffffff」內 存,該內存不能為「read」 ,並且提示Client.dat程序錯誤。 解決方法:重裝顯卡的最新驅動程序,然後下載並且安裝DirectX9.0。
例六:一個朋友發信息過來,我的電腦便出現了錯誤信息:「0x772b548f」指令引用的「0x00303033」內存,該內存不能為「written」,然後QQ自動下線,而再打開QQ,發現了他發過來的十幾條的信息。 解決方法:這是對方利用QQ的BUG,發送特殊的代碼,做QQ出錯,只要打上補丁或升級到最新版本,就沒事了。
【原因 解決方法】
1 內存條壞了 更換內存條
2 雙內存不兼容 使用同品牌的內存或只要一條內存
3 內存質量問題 更換內存條
4 散熱問題 加強機箱內部的散熱
5 內存和主板沒插好或其他硬體不兼容 重插內存或換個插槽
6 硬體有問題 更換硬碟
7 驅動問題 重裝驅動,如果是新系統,應先安裝主板驅動
8 軟體損壞 重裝軟體
9 軟體有BUG 打補丁或更新到最新版本
10 軟體和系統不兼容 給軟體打上補丁或是試試系統的兼容模式
11 軟體和軟體之間有沖突 如果最近安裝了什麼新軟體,卸載了試試
12 軟體要使用其他相關的軟體有問題 重裝相關軟體,比如播放某一格式的文件時出錯,可能是這個文件的解碼器有問題
13 病毒問題 殺毒
14 殺毒軟體與系統或軟體相沖突 由於殺毒軟體是進入底層監控系統的,可能與一些軟體相沖突,卸載試試
15 系統本身有問題 有時候操作系統本身也會有BUG,要注意安裝官方發行的更新程序,象SP的補丁,最好打上.如果還不行,重裝系統,或更換其他版本的系統。
〔又一說〕
在控制面板的添加/刪除程序中看看你是否安裝了微軟NET.Framework,如果已經安裝了,可以考慮卸載它,當然如果你以後在其它程序需要NET.Framework時候,可以再重新安裝。
另外,如果你用的是ATI顯卡並且你用的是SP2的補丁(一些ATI的顯卡驅動需要在NET.Framework正常工作的環境下)。這種情況你可以找一款不需要NET.Framework支持的ATI顯卡驅動。
如果以上兩種方法並不能完全解決問題,你試著用一下「IE修復」軟體,並可以查查是否有病毒之類的。
〔微軟NET.Framework升級到1.1版應該沒問題了〕
〔還有一說〕
方法一:
微軟新聞組的朋友指點:開始--運行:regsvr32 jscript.dll
開始--運行:regsvr32 vbscript.dll
不過沒解決---但提供了路子-----一次運行注冊所有dll
搜索查找到方法如下:
運行 輸入cmd 回車在命令提示符下輸入
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
這個命令老兄你慢慢輸 輸入正確的話會看到飛快地滾屏 否則……否則失敗就是沒這效果。回車後慢慢等(需要點時間1-2分鍾) 都運行完再打開看
方法二:
這是個典型問題~~~~~引起這個問題的原因很多。一般來講就是給系統打上補丁和更換內存、給內存換個插槽這3種方法來解決。[系統補丁只要到Microsoft Update網站在線更新就可以了]
(偶見)
造成這種問題的原因很多,不能單純的下結論,盡量做到以下幾點可能對你有幫助:
1。確保使用的是未修改過的軟體(非漢化、破解版)
2。使用改軟體時盡量不要運行其他軟體。(這是個臨時文件,可能某些軟體也在使用臨時文件夾,所以產生干擾)
3。把那些什麼桌面工具,內存整理工具通通關掉(你至少有2個類似的工具在運行)」
處理方法:
運行regedit進入注冊表, 在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks下,應該只有一個正常的鍵值"{AEB6717E-7E19-11d0-97EE-00C04FD91972}, 將其他的刪除。
〔我個人的最後解決和看法〕
我今天嘗試了多種辦法,最後我發現問題出在微軟的NET.Framework上面。我升級了這個軟體,並打齊了補丁,短暫平安後,有出現「內存不能為read」的情況。後來我受上面文章的啟發,卸載了微軟的NET.Framework1.0和1.1,世界太平了。
另外:如果是打開「我的電腦」、「我的文檔」等的時候出現上述情況,還有一種可能,就是你的右鍵菜單太臃腫了,此時只要清理右鍵菜單問題就解決了。
〔試驗的結果〕
上面的方法,最管用、最徹底的方法是這個:
運行 輸入cmd 回車在命令提示符下輸入
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
【技巧】如果怕輸入錯誤的話,可以復制這條指令,然後在命令提示框點擊左上角的c:\,使用下面的「編輯-粘貼」功能就不容易輸錯了。在飛速滾屏完全靜止之後,別著急啟動其他程序,先耐心等一會兒,因為此時dll們還在找位置。直到你的指示燈不閃了再做別的。
Ⅷ 一開始游戲就會出現應用程序異常,怎麼回事,求助
應用程序錯誤的解決方法如下:
1 電腦不心裝上了惡意,或上網時產生了惡意程序,建議用360 衛士 、金山衛士等,清理垃圾,查告氏殺惡意,完成後重啟電腦,就可能解決。實在不行,重裝,還原過系統,可以解決引起的問題。
2 如果只是運行個別或游戲偶爾出現的,重啟電腦再試,或到其他地方其他版本的重新安裝。
3 點 開始菜單 運行 輸入 cmd 回車,在命令提示符下輸入
for %1 in (%windir%#92;system32#92;*.dll) do regsvr32.exe /s %1 然後 回車。然後讓他運行完,應該就可能解決。
4 最近電腦中毒、安裝了不穩定的、等,建議全盤殺毒,卸了那個引發問題的,重新安裝其他 版本,就可能解決. 再不行,重新裝過系統就ok.
5 電腦機箱裡面內存條襪棚散進灰塵,拆和裂開機箱,拆下內存條,清潔下內存金手指,重新裝回去,就可能可以了。(cqjiangyong總結的,舊電腦經常出現這樣的問題)
6 電腦用久了內存壞、買到水貨內存、多條內存一起用不兼容等,建議更換內存即可能解決。
7 很多時候由於系統和顯卡驅動的兼容性不好,也會出現這樣的錯誤,建議你換個其他版本的顯卡驅動安裝,或換個其他版本的系統安裝。
Ⅸ 為什麼我安裝了穿越火線!進游戲就出現應用程序錯誤
出現unknown software exception錯誤,通常是從軟體與硬體著手,多數是出在,內存,軟體等方面,軟體方面首先需要對電腦進行全盤殺毒,排除病毒破壞的干擾,卸載兼容性不好的塵亮軟體,有些電腦安裝了微軟的NET.Framework組件後也會導致過該問題出現過,卸載掉問題就解決了。
按下「Win + R」快捷鍵打開運行,輸入「regsvr32 vbscript.dll」,點擊確定;在運行中輸入「cmd」並點擊確定打開命令提示符,在命令提示符下輸入:for %1 in (%windir%system32*.dll) do regsvr32.exe /s %1,如果輸入正確的話,等待1-2分鍾,粗橋再看看問題是否解決。
這是個典型問題,引起這個問題的原因很多。一般來講就是給系統打上補丁和更換內存、給內存換個插槽這3種方岩兄猛法來解決。系統補丁只要到Microsoft Update網站在線更新就可以了。造成這種問題的原因很多,不能單純的下結論。
Ⅹ 手機玩游戲時總出現應用程式錯誤,是什麼原因
有可能是軟體與手機支援的平台不相容。或者重新下載軟體。或者是啟動的程式太多導致記憶體不足…
轉:
如果不希望傳送Windows XP錯誤報告訊息, 那麼, 您可以在Windows XP中禁用此項服務。啟動系統配置工具:
1. 依次點選Start(開始)、Run(執行)。
2. 輸入msconfig以開啟系統配置工具。
3. 點選Services(服務)選項卡。
4. 清除Error Reporting Service(錯誤報告服務)復選框並單擊OK(確定)。
5. 單擊Restart(重新啟動)按鈕重新啟動您的系統。
現在, 您的計算機在啟動過程中將不會裝載錯誤報告服務。
一、應用程式沒有檢查記憶體分配失敗
程式需要一塊記憶體用以儲存資料時,就需要呼叫作業系統提供的「功能函式」來申請,如果記憶體分配成功,函式就會將所新開辟的記憶體區地址返回給應用程式,應用程式就可以通過這個地址使用這塊記憶體。這就是「動態記憶體分配」,記憶體地址也就是程式設計中的「指標」。
記憶體不是永遠都招之即來、用之不盡的,有時候記憶體分配也會失敗。當分配失敗時系統函式會返回一個0值,這時返回值「0」已不表示新啟用的指標,而是系統向應用程式發出的一個通知,告知出現了錯誤。作為應用程式,在每一次申請記憶體後都應該檢查返回值是否為0,如果是,則意味著出現了故障,應該採取一些措施挽救,這就增強了程式的「健壯性」。
若應用程式沒有檢查這個錯誤,它就會按照「思維慣性」認為這個值是給它分配的可用指標,繼續在之後的執行中使用這塊記憶體。真正的0地址記憶體區儲存的是計算機系統中最重要的「中斷描述符表」,絕對不允許應用程式使用。在沒有保護機制的作業系統下(如DOS),寫資料到這個地址會導致立即宕機,而在健壯的作業系統中,如Windows等,這個操作會馬上被系統的保護機制捕獲,其結果就是由作業系統強行關閉出錯的應用程式,以防止其錯誤擴大。這時候,就會出現上述的「寫記憶體」錯誤,並指出被引用的記憶體地址為「0x00000000」。
記憶體分配失敗故障的原因很多,記憶體不夠、系統函式的版本不匹配等都可能有影響。因此,這種分配失敗多見於作業系統使用很長時間後,安裝了多種應用程式(包括無意中「安裝」的病毒程式),更改了大量的系統引數和系統檔案之後。
二、應用程式由於自身BUG引用了不正常的記憶體指標
在使用動態分配的應用程式中,有時會有這樣的情況出現:程式試圖讀寫一塊「應該可用」的記憶體,但不知為什麼,這個預料中可用的指標已經失效了。有可能是 「忘記了」向作業系統要求分配,也可能是程式自己在某個時候已經登出了這塊記憶體而「沒有留意」等握並殲等。登出了的記憶體被系統回收,其訪問權已經不屬於該應用程式,因此讀寫操作也同樣會觸發系統的保護機制,企圖「違法」的程式唯一的下場就是 *** 作終止執行,回收全部資源。計算機世界的法律還是要比人類有效和嚴厲得多啊! 像這樣的情況都屬於程式自身的BUG,你往往可在特定的操作順序下重現錯誤。無效指標不一定總是0,因此錯誤提示中的記憶體地址也不一定為 「0x00000000」,而是其他隨機數字。
如果系統經常有所提到的錯誤提示,下面的建議可能會有幫助:
1.檢視系統中是否有木馬或病毒。這類程式為了控制系統往往不負責任地修改系統,從而導致作業系統異常。平常應加強資訊保安意識,對來源不明的可執行程式絕不好奇。
2.更新作業系統,讓作業系統的安裝程式重新拷貝正確版本的系統檔案、修正系統引數。有時候作業系統本身也會有BUG,要注意安裝官蔽猜方發行的升級程式。
3.試用新版本的應用程式。
解決" 0X000000該記憶體不能為read" 的方法
μ 希臘字母 謬 Μ Mu(大寫Μ,小寫μ),是第十二個希臘字母。 小寫μ用於: 算術平均數 「微」,一百萬分之一,舊時又用於微米(現在微米以 micro;m 代表) 電學上的磁導率 粒子物理學上,渺子的符號 摩擦系數 μ的Unicode是U 03BC,另外有一個以往。
應用程式錯誤是怎麼回事?
所中的病毒木馬不同,應用程式出現錯誤的提示也不盡相同。一般的情況是原來能正常執行的軟體突然一開啟就報告「應用程式錯誤,需要關閉」,「應用程式錯誤,**記憶體地址不能read」,「應用程式錯誤,位於地址****」等等
造成應用程式錯誤 該記憶體不能為read的原因
1.病毒木馬破壞
2.應用程式元件丟失或損壞
3.應用程式所依賴的元件丟失或損壞
4.軟體沖突
5.硬體故障
解決應用程式錯誤的方法步驟:
1.首先排除病毒原因,使用最新版本的金山毒霸快速查殺3-5分鍾,根據檢查結果,點選立即處理。
2.如果應用程式出錯的提示是缺少某個檔案,那就可能是這個檔案損壞,根據這個元件查詢是哪個系統元件損壞,重新安裝相關元件,恢復程式檔案,一般即可解決。
3.若是相關軟體自身的元件缺失,只需要重新安裝這個軟體即可。比如執行迅雷時提示缺少某個檔案,可以嘗試重新安裝迅雷。
4.若以上方法無效,可能是軟體之間的沖突導致出錯。解決辦法是嘗試關閉幾個無關的正在執行的應用程式,看看錯誤是否還會重現。若已解決,就知道是哪兩個軟體沖突,不再同時執行這兩個軟體即可解決。或者向廠商反饋故障,督促廠商升級解決。如果不清楚是哪幾個軟體沖突,可行的解決辦法是使用金山衛士的系統優化,在一鍵優化里,關閉一些不常用的軟體啟動。這樣開機後執行的程式少一些,沖突的概率會下降。
5.對於另一種應用程式出錯,截圖顯示「應用程式出錯,**記憶體地址不能讀或不能寫」,這種情況最復雜,若以上方法不能解決,則很可能是硬體(主要是記憶體)故障,可能是相容性不良,只能聯絡硬體供應商修理。或者重灌系統,重灌後短時間內可能會有效。
使用Windows作業系統的人有時會遇到這樣的錯誤資訊:
「「0X????????」指令引用的「0x00000000」記憶體,該記憶體不能為「read」或「written」」,然後應用程式被關閉。
如果去請教一些「高手」,得到的回答往往是「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????????」指令引用的「0x????????」記憶體。該記憶體不能為「read」。
「0x????????」指令引用的「0x????????」記憶體,該記憶體不能為「written」。
不知你出現過類似這樣的故障嗎?
一般出現這個現象有方面的,一是硬體,即記憶體方面有問題,二是軟體,這就有多方面的問題了。
下面先說說硬體:
一般來說,記憶體出現問題的可能性並不大,主要方面是:記憶體條壞了、記憶體質量有問題,還有就是2個不同牌子不同容量的記憶體混插,也比較容易出現不相容的情況,同時還要注意散熱問題,特別是超頻後。你可以使用MemTest
這個軟體來檢測一下記憶體,它可以徹底的檢測出記憶體的穩定度。
假如你是雙記憶體,而且是不同品牌的記憶體條混插或者買了二手記憶體時,出現這個問題,這時,你就要檢查是不是記憶體出問題了或者和其它硬體不相容。
如果都沒有,那就從軟體方面排除故障了。
先簡單說說原理:記憶體有個存放資料的地方叫緩沖區,當程式把資料放在其一位置時,因為沒有足夠空間,就會發生溢位現象。舉個例子:一個桶子只能將一斤的水,當你放入兩斤的水進入時,就會溢位來。而系統則是在螢幕上表現出來。這個問題,經常出現在windows2000和XP系統上,Windows
2000/XP對硬體的要求是很苛刻的,一旦遇到資源死鎖、溢位或者類似Windows
98里的非法操作,系統為保持穩定,就會出現上述情況。另外也可能是硬體裝置之間的相容性不好造成的。
下面我從幾個例子給大家分析:
例一:開啟IE瀏覽器或者沒過幾分鍾就會出現"0x70dcf39f"指令引用的"0x00000000"記憶體。該記憶體不能為「read」。要終止程式,請單擊「確定」的資訊框,單擊「確定」後,又出現「發生內部錯誤,您正在使用的其中一個視窗即將關閉」的資訊框,關閉該提示資訊後,IE瀏覽器也被關閉。解決方法:修復或升級IE瀏覽器,同時打上補丁。看過其中一個修復方法是,Win2000自升級,也就是Win2000升級到Win2000,其實這種方法也就是把系統還原到系統初始的狀態下。比如你的IE升級到了6.0,自升級後,會被IE5.0代替。
例二:在windows
xp下雙擊光碟裡面的「AutoRun.exe」檔案,顯示「0x77f745」指令引用的「0x00000078」記憶體。該記憶體不能為
「written」,要終止程式,請單擊「確定」,而在Windows
98里執行卻正常。解決方法:這可能是系統的相容性問題,winXP的系統,右鍵「AutoRun.exe」檔案,屬性,相容性,把「用相容模式執行這個程式」項選擇上,並選擇「Windows
98/Me」。win2000如果打了SP的補丁後,只要開始,執行,輸入:regsvr32
c:winntapppatchslayerui.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出錯,只要打上補丁或升級到最新版本,就沒事了。
【原因
解決方法】
1 記憶體條壞了 更換記憶體條
2 雙記憶體不相容 使用同品牌的記憶體或只要一條記憶體
3 記憶體質量問題 更換記憶體條
4 散熱問題
加強機箱內部的散熱
5 記憶體和主機板沒插好或其他硬體不相容 重插記憶體或換個插槽
6 硬體有問題 更換硬碟
7 驅動問題
重灌驅動,如果是新系統,應先安裝主機板驅動
8 軟體損壞 重灌軟體
9 軟體有BUG 打補丁或更新到最新版本
10 軟體和系統不相容
給軟體打上補丁或是試試系統的相容模式
11 軟體和軟體之間有沖突 如果最近安裝了什麼新軟體,解除安裝了試試
12 軟體要使用其他相關的軟體有問題
重灌相關軟體,比如播放某一格式的檔案時出錯,可能是這個檔案的解碼器有問題
13 病毒問題 防毒
14 防毒軟體與系統或軟體相沖突
由於防毒軟體是進入底層監控系統的,可能與一些軟體相沖突,解除安裝試試
15 系統本身有問題
有時候作業系統本身也會有BUG,要注意安裝官方發行的更新程式,象SP的補丁,最好打上.如果還不行,重灌系統,或更換其他版本的系統。
〔又一說〕
在控制面板的新增/刪除程式中看看你是否安裝了微軟NET.Framework,如果已經安裝了,可以考慮解除安裝它,當然如果你以後在其它程式需要NET.Framework時候,可以再重新安裝。
另外,如果你用的是ATI顯示卡並且你用的是SP2的補丁(一些ATI的顯示卡驅動需要在NET.Framework正常工作的環境下)。這種情況你可以找一款不需要NET.Framework支援的ATI顯示卡驅動。
如果以上兩種方法並不能完全解決問題,你試著用一下「IE修復」軟體,並可以查查是否有病毒之類的。
〔微軟NET.Framework升級到1.1版應該沒問題了〕
〔還有一說〕
方法一:
微軟新聞組的朋友指點:開始--執行:regsvr32
jscript.dll
開始--執行:regsvr32
vbscript.dll
不過沒解決---但提供了路子-----一次執行注冊所有dll
搜尋查詢到方法如下:
執行 輸入cmd
回車在命令提示符下輸入
for %1 in (%windir%system32*.dll) do regsvr32.exe /s
%1
這個命令老兄你慢慢輸 輸入正確的話會看到飛快地滾屏 否則……否則失敗就是沒這效果。回車後慢慢等(需要點時間1-2分鍾)
都執行完再開啟看
方法二:
這是個典型問題~~~~~引起這個問題的原因很多。一般來講就是給系統打上補丁和更換記憶體、給記憶體換個插槽這3種方法來解決。[系統補丁只要到Microsoft
Update網站線上更新就可以了]
(偶見)
造成這種問題的原因很多,不能單純的下結論,盡量做到以下幾點可能對你有幫助:
1。確保使用的是未修改過的軟體(非漢化、破解版)
2。使用改軟體時盡量不要執行其他軟體。(這是個臨時檔案,可能某些軟體也在使用臨時資料夾,所以產生干擾)
3。把那些什麼桌面工具,記憶體整理工具通通關掉(你至少有2個類似的工具在執行)」
處理方法:
執行regedit進入登錄檔,
在HKEY_LOCAL_
下,應該只有一個正常的鍵值"{AEB6717E-7E19-11d0-97EE-00C04FD91972},
將其他的刪除。
〔我個人的最後解決和看法〕
我今天嘗試了多種辦法,最後我發現問題出在微軟的NET.Framework上面。我升級了這個軟體,並打齊了補丁,短暫平安後,有出現「記憶體不能為read」的情況。後來我受上面文章的啟發,解除安裝了微軟的NET.Framework1.0和1.1,世界太平了。
另外:如果是開啟「我的電腦」、「我的文件」等的時候出現上述情況,還有一種可能,就是你的右鍵選單太臃腫了,此時只要清理右鍵選單問題就解決了。
--------------------------------------------------------------------------------
〔試驗的結果〕
上面的方法,最管用、最徹底的方法是這個:
執行
輸入cmd 回車在命令提示符下輸入
for %1 in (%windir%system32*.dll) do regsvr32.exe /s
%1
【技巧】如果怕輸入錯誤的話,可以復制這條指令,然後在命令提示框點選左上角的c:,使用下面的「編輯-貼上」功能就不容易輸錯了。在飛速滾屏完全靜止之後,別著急啟動其他程式,先耐心等一會兒,因為此時dll們還在找位置。直到你的指示燈不閃了再做別的。
應用程式錯誤問題:
1.木馬病毒造成常用病毒捆綁應用程式和系統檔案,然後安全防毒軟體把有木馬病毒應用程式和系統檔案查殺導致。
2.應用程式元件丟失,應用程式完整的執行需要一些系統檔案或者某些ll檔案支援,如果應用程式元件不完整也會導致的。
3.系統檔案損壞或丟失,盜版系統或Ghost版本系統,很容易出現該問題。
4.作業系統自身的問題,作業系統本身也會有bug 。
5.硬體問題,例如記憶體條壞了或者存在質量問題,或者記憶體條的金手指的灰塵特別多。
應用程式錯誤解決方法:
1.檢查電腦是否存在病毒,請使用網路衛士進行木馬查殺。
2.系統檔案損壞或丟失,盜版系統或Ghost版本系統,很容易出現該問題。建議:使用完整版或正版系統。
3.安裝的軟體與系統或其它軟體發生沖突,找到發生沖突的軟體,解除安裝它。如果更新下載補丁不是該軟體的錯誤補丁,也會引起軟體異常,解決辦法:解除安裝該軟體,重新下載重新安裝試試。順便檢查開機啟動項,把沒必要啟動的啟動項禁止開機啟動。
4.如果檢查上面的都沒問題,可以試試下面的方法。
開啟開始選單→執行→輸入cmd→回車,在命令提示符下輸入下面命令 for %1 in (%windir%system32*.dll) do regsvr32.exe /s %1回車。
完成後,在輸入下面
for %i in (%windir%system32*.ocx) do regsvr32.exe /s %i 回車。
如果怕輸入錯誤,可以復制這兩條指令,然後在命令提示符後擊滑鼠右鍵,打「貼上」,回車,耐心等待,直到螢幕滾動停止為止(重啟電腦)。
簡單點,直接點的方法就是,換記憶體條
記憶體指令不能read,這是在電腦使用中經常出現的問題,記憶體是主機板上的儲存部件,是CPU直接與之溝通,並用其存放當前正在使用的(即執行中)的資料和命令的重要部件。當你用鍵盤或滑鼠輸入某個命令後,CPU就會解釋命令並將指令或程式載入到記憶體中,這樣程式才能夠被執行。而一旦記憶體發生問題了,程式就不能被執行,因此就產生了前面我們提到的「該記憶體不能為read或written」錯誤的警告。
當然,出現了「該記憶體不能為read或written」的故障也不一定都是記憶體的問題,電腦中了病毒或木馬以及執行的程式本身的Bug也會造成這種現象。很難分清究竟是什麼原因造成的,一時半會不好排除,但沒關系,按確定、取消,重啟,即可。
感興趣的網友可用下述辦法試著去解決:
1、開啟的程式太多,如果同時開啟的文件過多或者執行的程式過多,沒有足夠的記憶體執行其他程式,要隨時關閉不用的程式和視窗。
2、自動執行的程式太多,關閉一些啟動程式, 開始-執行-Msconfig---啟動 ,除防毒軟體、輸入法外一般的程式都可以關掉。
3、實體記憶體過小,加大婚理記憶體;記憶體和主機板沒插好或其他硬體不相容 重插記憶體或換個插槽 ;雙記憶體不相容 ,要使用同品牌的記憶體或只要一條記憶體 ;劣質記憶體條或記憶體條壞了 更換記憶體條;合理設定虛擬記憶體。 4、市電電壓過大的波動,或者PC機上使用劣質電源,都會給記憶體帶來損害,更換功率大、質量好的電源。 5、PC機箱內充滿灰塵,或者PC工作環境相對潮溼,也會造成執行不正常。及時除塵。
6 、CPU、顯示卡散熱問題 ,改善散熱 。
7、硬碟有問題 ,掃描修復或更換硬碟 。
8 、驅動問題 重灌更新驅動 。
9、非法操作,系統無法執行。
10、 軟體損壞 重灌軟體 ;軟體有BUG 打補丁或更新到最新版本 ; 軟體和系統不相容 給軟體打上補丁或是試試系統的相容模式 ; 軟體和軟體之間有沖突 如果最近安裝了什麼新軟體,解除安裝了試試 。
11、 系統本身有問題 有時候作業系統本身也會有BUG,要注意安裝官方發行的更新程式最好及時補上,必要時重灌系統。
12、 病毒問題 防毒 ;防毒軟體與系統或軟體相沖突 由於防毒軟體是進入底層監控系統的,可能與一些軟體相沖突,解除安裝試試
13、試開啟CMD視窗輸入如下命令: for %i in (%windir%system32*.dll) do regsvr32.exe /s %i 回車 for %i in (%windir%system32*.ocx) do regsvr32.exe /s %i 回車 重啟
建議可以在開機(或重啟)時,不停點選F8按鍵選擇進入最後一次正確配置;
用驅動精靈重新安裝音效卡驅動;
如果上述方法都不行,可以重灌系統即可。
其中有這些原因:
1.病毒木馬破壞
2.應用程式元件丟失或損壞
3.應用程式所依賴的元件丟失或損壞
4.軟體沖突
5.硬體故障
問題處理完成後,您也可以嘗試使用騰訊電腦管家,全方位實時保護你的電腦