亚洲精品国产情侣av在线_91亚洲国产成人久久精品网站_亚洲AV无码专区电影在线观看_亚洲AV无码专区亚洲AV桃

首頁 > IT > > 正文

運行程序提示access violation at address的解決方法

2021-12-19 06:31:05    來源:腳本之家

現在把解決方法公布出來:右擊“我的電腦”。單擊“屬性”。   在“系統屬性”中單擊“高級”。   在“性能”中單擊“設置”。   在“性能選項”中單擊“數據執行保護”。   單擊“添加”。選擇要運行的程序。   OK。就這么簡單。 Access Violation(非法訪問)錯誤的解決方法Access Violation(非法訪問),General Protection Fault(一般保護性錯誤)或者Invalid Page Fault(無效頁面錯誤),雖然說法不一樣,但本質上總是由同一種錯誤引起的。Access Violation常常在計算機用戶運行的程序試圖存取未被指定使用的存儲區時遇到。 Access violation at address <十六進制值> in module <應用程序名> Read of address <十六進制值>   Windows用戶可能經常會看到類似于錯誤提示:“Error:Access violation at address 836556F8(004096da). Read of address 836556F8(00401000)”。作為一個Delphi程序開發者,遇到這種錯誤的機會比其他用戶更多(^_^)。   一旦Windows要在它被分配的存儲區之外寫數據信息,它就會覆蓋其他程序甚至操作系統的命令或數據。一旦發生了這種情況,操作系統將會癱瘓或者以某種形式關閉,你必須重新啟動計算機。例如,在Windows NT/2000下一個程序遇到這種錯誤時,Dr. Watson出現并且停止了該程序,捕獲了一些快速的細節狀態,再把它們用文本形式記錄下來。Access Violation是某些最令人氣惱的Windows程序遇到的錯誤之一。本文的目的就是讓你找到Delphi中Access Violation的解決之道。首先聲明一點,Access Violation和Microsoft Access沒有任何關系。   用Delphi開發程序時,我們可以把遇到的Access Violation分成兩大類:運行期和設計期。 一、設計期的Access Violation 1.硬件原因   在啟動或關閉Delphi IDE以及編譯一個Delphi工程時容易出現設計期的Access Violation。在你的計算機運行中出現Access Violation信息可能由各種各樣的原因引起,包括系統BIOS、操作系統或者是硬件驅動線,有些聲卡、顯卡、網卡實際上也會導致這種錯誤。為什么這么說?計算機里的每一塊卡都有它的設備驅動程序。對于不同的制造商、不同版本的Windows或者不同版本的Delphi都可能會遇到不同的問題。如下的幾個步驟可能有助于你解決遇到的這些問題:   1. 按照必要的步驟來證實你安裝的驅動程序之間沒有沖突。   2. 有時降低顯示分辨率可能會使某些古怪的顯卡驅動程序穩定一些。   3. 如果使用雙處理器的主板,則保證對每個處理器的修改步驟一樣。   4. 對于計算機上的所有硬件注意使用最新的驅動程序。 2.軟件原因 盡管Intel的計算機中Windows是最流行的操作系統,由于Windows系統天生的脆弱性和BUG,應用程序的誤操作可能導致操作系統的迅速癱瘓(有時操作系統本身也會莫名其妙的癱瘓)。選擇一個更穩定的程序開發環境是解決之道,如下幾個步驟可以幫助你防止某些Access Violation的發生:   (1)盡管Windows 9X相當流行,Windows NT/2000還是從多方面被證實是一個穩定得多的環境,幾乎對于所有的Windows代碼平臺而言都是這樣。 (2) 確保對于Windows NT/2000已經安裝了最新的service pack。每次安裝完新版的service pack,你會發現機器變得穩定了。 (3) 為你使用的各種版本的Delphi裝上當前的更新或補丁(BDE、ADO……),這是提前預防錯誤的好辦法。盡量使用最新的Delphi補丁——Access Violation錯誤數量尤其是設計期的錯誤數會大大減少。 (4)如果你在IDE中經常隨機遇到Access Violation錯誤,很有可能是你安裝了一個不好的控件、包或者一個向導,它不是你使用的版本的Delphi所編寫或編譯的。試著一個一個卸載定制的控件(或者包)直到問題被解決,然后聯系控件廠商關注這個問題的結果。 (5) 檢查一下計算機里是否有沒用的東西和程序沖突。奇怪的軟件程序和測試版的產品常常會導致Access Violation錯誤。 (6) 如果系統設置有錯誤,那么Access Violation錯誤可能也會經常出現。如果你不停地遇到一個錯誤提示信息一樣的Access Violation,記錄下這些細節,然后通知可能導致這個錯誤的軟件制造廠商。 這些就是我對設計期Access Violation錯誤的全部建議。 二、運行期的Access Violation Delphi常見的運行期Access Violation錯誤有哪些?如何防止? 任何軟件開發都會遇到這樣的情況:你寫好程序并測試,然后到處發送,結果用戶告訴你它失敗了。 你可能考慮用編譯指令{$D}編譯你的程序——Delphi可以建立一個有助于定位Access Violation錯誤的源代碼的鏡像文件。工程選項對話框(Project|Options|Linker & Compiler)讓你指定你所需要的一切。對于單元文件,debug信息和單元的對象代碼一起記錄在unit文件里了。編譯使用這個單元的程序時,debug信息會增加單元文件的大小而且會增加額外的內存開銷,但是它不會影響最終可執行文件的大小和運行速度。包含debug信息和鏡像文件(Project|Options|Linker)選項的產品只有在{$D+} 編譯指令下才會完成行信息。 Access violation通常只在程序的某一個方面表現出來。當問題第一次出現時,考慮一下用戶進行了什么操作是很重要的,然后從這里尋找突破口。從用戶的角度來看,你的程序中止了他們的工作,由他們來告訴你出現的問題似乎讓你延期解決這個問題了。然而,與用戶交流是你發現問題和改善程序的惟一有效方法。 現在你將可以知道在只給你沖突地址的情況下,如何輕松發現準確路徑、源代碼文件、發生Access violation錯誤的行: “Search - Find Error…”。 當一個運行期Access violation出現時,你的用戶得到的錯誤信息類似于如下情況: Access violation at address <十六進制值> in module <應用程序名> Read of address <十六進制值> 如果你的程序在Delphi IDE里包含debug信息編譯,你可以定位到導致這個錯誤源代碼這一行。 在Delphi程序中,一個最普遍導致Access Violation錯誤的原因是使用了一個沒有被創建的對象。如果第二個地址<十六進制值>是FFFFFFF或0000000,十有八九就是你訪問? 了一個沒有被建立的對象。例如,你調用了一個表單的事件,但這個表單不是自動創建的,也沒有代碼實例化。 ?procedure TfrMain.OnCreate(Sender: TObject); var BadForm: TBadForm; begin //這里將會產生Access violation BadForm.Refresh; end; 假設BadForm在工程選項“Available Forms”窗口列表里——這個窗口是需要手工創建和釋放的。在上面的代碼里調用BadForm窗口的Refresh方法就會導致Access violation。 如果你在Debugger選項窗口使“Stop on Delphi Exceptions”生效,那么就會彈出下面的信息: The message states that the EAccessViolation has occurred. The EAccessViolation is the exception class for invalid memory access errors. 這是你在設計程序時將會看到的信息,下一個信息框將會出現,然后程序失敗了: Access violation at address 0043F193 in module ’Project1.exe’ Read of address 000000. 第一個十六進制數0043F193是發生Access violation的編譯代碼(Project1.exe)的運行期錯誤的地址。在IDE里選擇菜單項“Search|Find Error…”,在對話框里輸入錯誤發生的地址(0043F193)后點擊“OK”按鈕。Delphi將會重新編譯你的工程文件,然后顯示發生運行期錯誤的那一行代碼,這里就是BadForm.Refresh這一行了。 下面列出了Delphi環境下導致Access violation錯誤的大部分常見原因。這個列表不是也不可能覆蓋所有可能出現的Access violation的情況。請在論壇上發送你的Access violation信息,大家可以試著一起解決這個問題——真正的實際事例一般情況下比列出來的錯誤隱晦得多。 1. 調用一個不存在的對象 如上所述,大部分Access violation的合理原因是使用了沒有被創建或者已經被釋放的對象。為了防止這種類型的Access violation的發生,請確保你訪問的任何對象都首先被創建了。例如,當一個Table定位在一個沒有被創建的data module(從auto-crete窗口里移走了)里,你可能在窗體的OnCreate事件里打開這個表。 在下面的代碼里,在調用一個已經被刪除了的對象(b:TBitmap)事件后,一個Access violation出現了: var b:TBitmap; begin b:=TBitmap.Create; try //對b對象進行一些操作 finally b.free; end; ... //由于b已經被釋放,一個Access violation錯誤將會出現 b.Canvas.TextOut(0,0,’這是一個 Access Violation’); end; 2. 不存在的API參數 如果你試圖給Win API函數傳遞一個不存在的參數將會出現一個Access violation錯誤。解決此類Access violation錯誤的最好方法是查閱Win API幫助,看看這個API函數調用的參數信息以及參數類型。例如,總是保證不給一個緩沖參數傳遞一個無效指針。 3. 讓Delphi釋放 當一個對象擁有另一個對象時,讓它給你做刪除工作。因為默認情況下,所有的窗體(自動創建的)都屬于Application對象。當一個應用程序結束時,它釋放了Application對象,也就釋放了所有窗體。例如,如果你在程序開始時自動創建了兩個窗體(Form1/Unit1和Form2/Unit2),下面的代碼就會導致Access violation錯誤的出現: unit Unit1; ... uses unit2; ... procedure TForm1.Call_Form2 begin Form2.ShowModal; Form2.Free; //Access violation錯誤將會出現 Form2.ShowModal; end; 4. 殺死異常 永遠不要破壞臨時異常對象(E),處理一個異常會自動釋放異常對象。如果你自己手動釋放了異常對象,程序會試圖再次釋放它,那么就會出現Access violation錯誤: Zero:=0; try dummy:= 10 / Zero; except on E: EZeroDivide do MessageDlg(’不能用0做除數!’,mtError, [mbOK], 0); E.free. ////Access violation錯誤將會出現 end; 5. 檢索一個空字符串 一個空字符串是沒有任何數據的。就是說,檢索一個空字符串相當于訪問一個不存在的對象,這將導致Access violation錯誤: var s: string; begin s:=’’; s[1]:=’a’; //Access violation錯誤將會出現 end; 6. 直接引用指針 你必須間接引用指針,否則你會改變指針地址并可能會破壞其他存儲單元 : procedure TForm1.Button1Click(Sender: TObject); var p1 : pointer; p2 : pointer; begin GetMem(p1, 128); GetMem(p2, 128); //下一行導致Access violation錯誤 Move(p1, p2, 128); //下一行方法正確 Move(p1^, p2^, 128); FreeMem(p1, 128); FreeMem(p2, 128); end; 這些就是我對運行期Access Violation錯誤的全部建議,我希望你們也能對你們程序出現的Access Violation錯誤提出一些看法。

相關熱詞搜索:

上一篇:
下一篇:

熱點話題

熱點推薦

頭條

? 亚洲精品国产情侣av在线_91亚洲国产成人久久精品网站_亚洲AV无码专区电影在线观看_亚洲AV无码专区亚洲AV桃

              精品久久久久久久一区二区蜜臀| 日韩影院免费视频| 国模娜娜一区二区三区| 国产亚洲精品资源在线26u| 亚洲一区二区三区四区的 | 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 成人美女视频在线观看| 亚洲人一二三区| 日韩欧美国产综合一区 | 国产日韩av一区| 欧美性生活大片视频| 国产精品久久久久久妇女6080 | 亚洲精品亚洲人成人网在线播放| 欧美一区二区三区免费| 亚洲毛片av在线| 成人免费毛片app| 亚洲国产一区二区在线播放| ww久久中文字幕| 麻豆91精品91久久久的内涵| 国产精品色眯眯| 欧美日韩一级片在线观看| 亚洲欧美国产三级| 成人自拍视频在线| 亚洲一区二区三区四区五区中文 | 国产欧美日韩综合精品一区二区| 欧美亚洲免费在线一区| 亚洲欧美色综合| www.亚洲在线| 日本二三区不卡| 亚洲欧美日韩一区| av激情亚洲男人天堂| 在线中文字幕不卡| 自拍偷拍欧美精品| 99久久久国产精品免费蜜臀| 色一区在线观看| 亚洲三级电影网站| 99国产精品国产精品毛片| 在线精品视频免费播放| 亚洲女同女同女同女同女同69| eeuss影院一区二区三区 | 中文无字幕一区二区三区| 精品亚洲国内自在自线福利| 一区二区三区视频在线看| 国产午夜精品在线观看| 国产精品1区二区.| 在线看国产一区| 亚洲一区中文日韩| 国产视频一区不卡| 精品国精品自拍自在线| 久久99精品国产麻豆不卡| 亚洲综合色丁香婷婷六月图片| 国产精品久久久久久久久免费相片 | 亚洲成人激情综合网| 亚洲国产精品国自产拍av| 精品理论电影在线| 极品美女销魂一区二区三区免费| 亚洲国产精品久久人人爱| 最新国产の精品合集bt伙计| 91麻豆国产福利精品| 91精品国产欧美一区二区成人| 日本女人一区二区三区| 夜夜亚洲天天久久| 亚洲丝袜另类动漫二区| 久久午夜国产精品| 欧美精品一区二区三区蜜桃视频 | 制服丝袜日韩国产| 久久成人免费网| 午夜精品久久久久久| 一区二区成人在线观看| 亚洲欧洲av色图| 国产精品白丝在线| 久久久亚洲精品石原莉奈| 26uuu亚洲综合色欧美| 高清日韩电视剧大全免费| 欧美日韩成人激情| 久久成人精品无人区| 一本一道波多野结衣一区二区| 亚洲一二三专区| 亚洲手机成人高清视频| 综合在线观看色| 国产精品午夜春色av| 国产欧美视频一区二区三区| 久久网站热最新地址| 久久欧美一区二区| 久久日一线二线三线suv| 亚洲精品一区二区三区四区高清 | 日本美女视频一区二区| 五月综合激情婷婷六月色窝| 亚洲高清不卡在线| 午夜欧美在线一二页| 图片区小说区区亚洲影院| 亚洲一区二区五区| 午夜精品久久久久久| 污片在线观看一区二区| 日韩av电影天堂| 在线观看91精品国产入口| 另类小说视频一区二区| 欧美午夜精品理论片a级按摩| 麻豆一区二区在线| 欧美高清激情brazzers| 粗大黑人巨茎大战欧美成人| 日韩美女主播在线视频一区二区三区| 成人av影视在线观看| 欧美成人免费网站| 91在线观看污| 欧美韩国日本综合| 专区另类欧美日韩| 亚洲成人激情综合网| 色视频成人在线观看免| 精品一区二区免费在线观看| 欧美一二三四区在线| 不卡视频在线观看| 国产日韩欧美激情| 国产精品传媒视频| 亚洲18女电影在线观看| 色天天综合色天天久久| 国产乱码精品一区二区三| 日韩欧美久久久| 国产亚洲一二三区| 亚洲乱码国产乱码精品精98午夜 | 亚洲制服丝袜一区| 麻豆成人在线观看| 欧美一区二区精品久久911| 91麻豆国产福利精品| 中文字幕制服丝袜一区二区三区 | 中文字幕亚洲一区二区va在线| 亚洲在线中文字幕| 欧洲国产伦久久久久久久| 国产成人超碰人人澡人人澡| 欧美精品一区二区三区一线天视频| 欧美国产国产综合| 午夜国产精品一区| 欧美老肥妇做.爰bbww| 91老师片黄在线观看| 亚洲精品一二三区| 欧美专区日韩专区| av资源网一区| 亚洲精品精品亚洲| 欧美性大战xxxxx久久久| 99热在这里有精品免费| 亚洲三级电影网站| 欧美专区在线观看一区| aaa欧美日韩| 一区二区国产视频| 欧美久久久一区| 国产日韩欧美在线一区| 婷婷久久综合九色国产成人| 欧美一区二区三区四区视频| 国产日韩视频一区二区三区| 性感美女久久精品| 日韩欧美一区二区久久婷婷| 中文文精品字幕一区二区| 日本成人在线网站| 久久久影视传媒| 亚洲一区二区三区四区的| 国产夫妻精品视频| 成人欧美一区二区三区黑人麻豆| 色婷婷国产精品综合在线观看| 成人av电影在线播放| 夜夜亚洲天天久久| 7777精品伊人久久久大香线蕉完整版 | 日本中文一区二区三区| 精品国内片67194| 一区二区三区高清| 成人手机在线视频| 亚洲一区二区三区四区五区中文| 欧美日本视频在线| 国产精品乱人伦中文| 精品一区二区三区香蕉蜜桃| 欧美国产日本视频| 在线免费亚洲电影| 久久精品夜夜夜夜久久| 日本在线播放一区二区三区| 久久综合久久鬼色| 婷婷国产v国产偷v亚洲高清| 99re成人在线| 日韩国产在线观看一区| 国产日韩精品一区二区浪潮av| 色狠狠一区二区| 国产欧美中文在线| 精品在线亚洲视频| 亚洲天堂2016| 欧美一级午夜免费电影| 洋洋av久久久久久久一区| www.色精品| 日韩高清不卡一区二区三区| 国产性天天综合网| 欧美午夜宅男影院| 中文字幕一区不卡| 成人h动漫精品一区二区| 亚洲h精品动漫在线观看| 久久久久88色偷偷免费| 欧美天堂一区二区三区| 综合在线观看色| 成人黄色国产精品网站大全在线免费观看| 亚洲精品乱码久久久久久| 精品福利一区二区三区 | 国内成人自拍视频| 亚洲精品国产第一综合99久久| 日韩欧美亚洲国产另类|