国语自产精品视频在线看:您身边最放心的安全下载站! 最新软件|热门排行|软件分类|软件专题|厂商大全

国语自产精品视频在线看

技术教程
您的位置:首页电脑医院系统故障 → 提示access violation at address解决办法

提示access violation at address解决办法

我要评论 2013/08/02 14:28:15 来源:国语自产精品视频在线看 编辑:zbbingyang.com [ ] 评论:0 点击:2683次

解决【jué】方😖法【fǎ】🔚:
  右击“我的【de】🌞电脑”。单击【dān jī】“属性【xìng】”。
  在【zài】🌁“系统【tǒng】属🍉性【xìng】”中单击【zhōng dān jī】“高级”。
  在【zài】🌁“性【xìng】能”中单击【zhōng dān jī】“设置”。
  在【zài】🌁“性【xìng】能选项”中单击【zhōng dān jī】“数据执行【háng】保护”。
  单击【dān jī】“添加⛔”。选择要运行的【háng de】🌞程序【chéng xù】👿。
  OK。就这么简单【jiǎn dān】。

Access Violation(非法【fǎ】🔚访问【fǎng wèn】)错误【cuò wù】的【de】🏪解决【jué】方😖法【fǎ】🔚

Access Violation(非法【fǎ】🔚访问【fǎng wèn】),General Protection Fault(一【yī】般保🏣护性【xìng】错误【cuò wù】🔒)或者【huò zhě】🐸Invalid Page Fault(无效页面错误【miàn cuò wù】🔒),虽然说法【fǎ】🔚不一【bú yī】😓样【yàng】📛,但本质【dàn běn zhì】♍上总是由同一【yóu tóng yī】🙇种错误【zhǒng cuò wù】🤸引起【yǐn qǐ】的【de】🗺。Access Violation常常在【zài】📸计算机【jì suàn jī】用【yòng】户运😏行的【háng de】🌞程序【chéng xù】试图【tú】😨存取未【cún qǔ wèi】被指定【bèi zhǐ dìng】使用的【yòng de】😸存储区🌪时遇到【shí yù dào】。
Access violation at address <十六进制值【zhì zhí】>
in module <应用程【yīng yòng chéng】🖍序【xù】👿名【míng】>
Read of address <十六进制值【zhì zhí】>
  Windows用【yòng】户可能经常会看到🏭类似于【yú】💵错误【cuò wù】🔒提示➡:“Error:Access violation at address 836556F8(004096da). Read of address 836556F8(00401000)”。作为一【zuò wéi yī】😓个【gè】💂Delphi程序【chéng xù】👿开发者,遇到这【yù dào zhè】❎种错误【zhǒng cuò wù】🤸的【de】机会🌸比其他用户更【yòng hù gèng】🍪多【duō】💯(^_^)。
  一【yī】😓旦Windows要在【zài】🌁它被分配🚢的【de】存储🤑区之外写数据🌟信息【xìn xī】🚬,它就会【tā jiù huì】💷覆盖其他程序【chéng xù】👿甚至操【shèn zhì cāo】作系统【tǒng】🕖的【de】🌞命令或【mìng lìng huò】数据。一【yī】😓旦发生了这种情况【qíng kuàng】,操作系【cāo zuò xì】统【tǒng】🕖将会瘫【jiāng huì tān】痪或者【huò zhě】🐸以某种形式关【xíng shì guān】闭【bì】,你【nǐ】必须♉重新启动计算【dòng jì suàn】机。例如🦅,在【zài】🌁Windows NT/2000下一【yī】😓个【gè】💂程序【chéng xù】👿遇到这【yù dào zhè】❎种错误【zhǒng cuò wù】🤸时【shí】,Dr. Watson出现并【chū xiàn bìng】且停止了该程序【chéng xù】👿,捕获了【bǔ huò le】一【yī】😓些【xiē】🤹快速的【de】🌞细节【xì jiē】状态♉,再把它们用【yòng】文本形式记录下【jì lù xià】来【lái】🥑。Access Violation是某些【shì mǒu xiē】🎢最令人气恼的【de】🍕Windows程序【chéng xù】👿遇到的【de】🌞错误【cuò wù】🔒之一【yī】😓。本文的【běn wén de】🐂目的【de】🌞就是让你【nǐ】📈找到【zhǎo dào】Delphi中【zhōng】Access Violation的【de】🌞解决【jué】之🌎道【dào】。首先声明一点【míng yī diǎn】🔢,Access Violation和Microsoft Access没有任何关系。

  用【yòng】Delphi开发程序【chéng xù】👿时【shí】,我们可以把遇到的【de】🌞Access Violation分成两🛶大类🗿:运行【háng】期【qī】🛩和设计【hé shè jì】🅰期【qī】🛩。

一【yī】😓、设计期【shè jì qī】🛩的【de】🌞Access Violation

1.硬件【jiàn】原✴因🉑
  在【zài】🌁启动或关闭【bì】Delphi IDE以及编译一【yī】😓个【gè】💂Delphi工程【chéng】时【shí】容易出现【chū xiàn】设计期【shè jì qī】🛩的【de】🌞Access Violation。在你的【zài nǐ de】🤼计算机【jì suàn jī】运行【háng】中【zhōng】出现【chū xiàn】Access Violation信息【xìn xī】🚬可能由各种各【gè zhǒng gè】样【yàng】⛓的【de】原因💙引起【yǐn qǐ】,包括系统【tǒng】🛷BIOS、操作系【cāo zuò xì】统【tǒng】🕖或者【huò zhě】🐸是硬件【jiàn】😳驱动线,有些【xiē】🤹声卡【shēng kǎ】、显卡【xiǎn kǎ】、网卡实际上也会导【dǎo】👢致🕌这种错误【zhǒng cuò wù】🤸。为什么【wéi shí me】这么说?计算机【jì suàn jī】里的【de】🌞每一【měi yī】😓块卡都有它的【de】🌞设备驱动程【qū dòng chéng】🔲序【xù】👿。对于不【duì yú bú】同的【tóng de】🖖制造商🦒、不同版【bú tóng bǎn】本的【běn de】💻Windows或者【huò zhě】🐸不同版【bú tóng bǎn】本的【běn de】💻Delphi都可能【dōu kě néng】会遇到【huì yù dào】📲不同的【tóng de】🖖问题🅰。如下的【de】🌞几个【gè】步骤👬可能有助于【yú】🍅你【nǐ】解决【jué】🔠遇到的【de】🌞这些【xiē】🤹问题🅰:

  1. 按照必🔜要的【de】🌞步骤来【lái】🥑证实你【zhèng shí nǐ】安装的【de】驱🐎动程序【dòng chéng xù】👿之间没有冲突。

  2. 有时【shí】降低显示【dī xiǎn shì】➡分辨率🍛可能会使某些【shǐ mǒu xiē】😭古怪的【gǔ guài de】🌞显卡【xiǎn kǎ】驱🍟动程序【dòng chéng xù】👿稳定一【yī】🐂些【xiē】🤹。

  3. 如果使用【yòng】双处理器【chù lǐ qì】🆒的【de】🌞主板,则保证对每个【gè】💂处理器【chù lǐ qì】🆒的修改【de xiū gǎi】⌚步骤一【bù zhòu yī】😓样【yàng】📛。

  4. 对于【yú】计🥧算机上🏽的【de】🌞所有硬【suǒ yǒu yìng】件【jiàn】😳注意使用最新【yòng zuì xīn】的【de】👅驱动程【qū dòng chéng】🔲序【xù】👿。

2.软件【ruǎn jiàn】😳原因🉑
  尽管Intel的【de】🌞计算机【jì suàn jī】中【zhōng】Windows是最流🍺行的【háng de】🌞操作系【cāo zuò xì】统【tǒng】🕖,由于【yú】Windows系统【tǒng】🛷天生的【de】🌞脆弱性【xìng】和BUG,应用程【yīng yòng chéng】🖍序【xù】👿的【de】🌞误【wù】😑操作可🌲能导【dǎo】👢致🕌操作系【cāo zuò xì】统【tǒng】🕖的【de】🌞迅速瘫痪(有时【shí】操作系【cāo zuò xì】统【tǒng】🕖本身也🌉会莫名【míng】🦃其妙的【de】🌞瘫痪)。选择一【xuǎn zé yī】🍥个【gè】💂更稳定的【de】程【chéng】🌴序【xù】👿开发环境是解决【jué】之🌎道【dào】,如下几【rú xià jǐ】个【gè】步骤👬可以帮🤐助你【nǐ】防止某些【xiē】❗Access Violation的【de】🌞发生:

  (1)尽管Windows 9X相当流【xiàng dāng liú】行【háng】,Windows NT/2000还是从【hái shì cóng】😍多【duō】💯方面被证实是一【yī】😓个【gè】💂稳定得多【duō】💯的【de】🌞环境,几乎对🕠于【yú】所有的【de】🌞Windows代码平【dài mǎ píng】🐳台而言都是这样【yàng】📛。

(2) 确保对🏺于【yú】Windows NT/2000已经安🎊装了最新的【xīn de】👅service pack。每次安装完新版的【de】🌞service pack,你会发【nǐ huì fā】📷现机器🆘变得稳【biàn dé wěn】🥂定了🏝。

(3) 为你使用【nǐ shǐ yòng】的【de】😸各种版本的【bǎn běn de】💻Delphi装上当前的【de】🌞更新或补🔌丁💀(BDE、ADO……),这是提前预防错误【cuò wù】的【de】🏪好办法【hǎo bàn fǎ】🔚。尽量使👞用最新【yòng zuì xīn】的【de】👅Delphi补丁🍑——Access Violation错误【cuò wù】🔒数量尤【shù liàng yóu】其🥔是设计🐫期【qī】🛩的【de】🌞错误【cuò wù】🔒数会大大减少【dà jiǎn shǎo】。

(4)如果你【nǐ】在【zài】🌁IDE中【zhōng】经常随机遇到Access Violation错误【cuò wù】🔒,很有可能是你【néng shì nǐ】安装了一【yī】😓个【gè】💂不好的【de】🌞控件【jiàn】😳、包或者【huò zhě】📭一【yī】😓个【gè】💂向导【xiàng dǎo】👢,它不是你使用【nǐ shǐ yòng】的【de】😸版本的【bǎn běn de】💻Delphi所编写【suǒ biān xiě】或编译【huò biān yì】的【de】🌞。试着一【shì zhe yī】😓个【gè】💂一【yī】😓个【gè】💂卸载定制的【de】控💡件【jiàn】😳(或者【huò zhě】🐸包)直到问😹题被解👩决【jué】,然后联🥖系控件【xì kòng jiàn】😳厂商关注这个【zhù zhè gè】💂问题的【de】⛳结果【jié guǒ】。

(5) 检查一【yī】😓下计算机【jì suàn jī】里是否有没😩用的【yòng de】🌞东西和程【chéng】🚨序【xù】👿冲突。奇怪的【de】🌞软件【ruǎn jiàn】😳程序【chéng xù】👿和测试版的【de】🌞产品常常会导【cháng huì dǎo】👢致🕌Access Violation错误【cuò wù】🔒。

(6) 如果系😇统【tǒng】🛷设置有错误【cuò wù】🔒,那么Access Violation错误【cuò wù】🔒可能也会经常出现【chū xiàn】。如果你【nǐ】不停地🤡遇到一【yù dào yī】🦑个【gè】💂错误【cuò wù】🔒提示➡信息【xìn xī】🚬一【yī】😓样【yàng】📛的【de】🌞Access Violation,记录下【jì lù xià】这些【xiē】🤹细节【xì jiē】,然后通知可能导【dǎo】👢致🕌这个【gè】💂错误【cuò wù】的【de】🏪软件【ruǎn jiàn】😳制造厂【zhì zào chǎng】商。
这些【xiē】🤹就是我【jiù shì wǒ】对💡设计期【shè jì qī】🛩Access Violation错误【cuò wù】的【de】🏪全部建【quán bù jiàn】议【yì】。

二【èr】、运行期【yùn háng qī】⛽的【de】Access Violation
Delphi常见的【cháng jiàn de】👶运行期【yùn háng qī】⛽Access Violation错误有哪些?如何防【rú hé fáng】止?

任何软【rèn hé ruǎn】件🥃开发都会遇🎡到这样的【de】情况🥀:你写好程序并测试,然后到处发送,结果用户告诉🍢你它失败了【le】🍸。

你可能【nǐ kě néng】🥟考虑用编译【biān yì】👬指令💇{$D}编译【biān yì】👬你的程序【de chéng xù】——Delphi可以建立一个【yī gè】🛢有助于🐞定位Access Violation错误的【cuò wù de】🏃源代码🧀的【de】镜像📅文件🚆。工程选【gōng chéng xuǎn】项对【duì】话框【kuàng】🗻(Project|Options|Linker & Compiler)让你指【ràng nǐ zhǐ】定你所⌚需要的【yào de】🔹一切🕟。对于单【duì yú dān】🧗元文件💌,debug信息【xìn xī】🍩和单元【hé dān yuán】的对象【de duì xiàng】🤥代码一起记录在【zài】🍵unit文件🚆里【lǐ】🌁了【le】🛡。编译【biān yì】👬使用这个【gè】🤢单元的程序【de chéng xù】时【shí】😙,debug信息【xìn xī】🍩会增加单元文件💌的【de】大小而且会增加额外的【de】内🏐存开销,但是它【dàn shì tā】🚙不会影【bú huì yǐng】🦀响最终可执行🕓文件的【de】📎大小和🚊运行速【yùn háng sù】度。包含debug信息【xìn xī】🍩和镜像文🍥件🥃(Project|Options|Linker)选项的【xuǎn xiàng de】产品只🐫有在【zài】{$D+} 编译【biān yì】👬指令💇下【xià】才会完成行信息【xìn xī】🍩。

Access violation通常只在程序【zài chéng xù】的【de】某一个【yī gè】方面🐿表现【xiàn】🏄出来。当问题第一次【dì yī cì】出现【xiàn】🏄时【shí】,考虑一😜下用户【xià yòng hù】🌌进行了【jìn háng le】🛡什么操作🚇是【shì】很重要的【yào de】🧤,然后从【rán hòu cóng】🚗这里【lǐ】🌁寻找突破【pò】✊口。从🚗用户的【yòng hù de】角度【jiǎo dù】🏧来看【lái kàn】,你的程序【de chéng xù】中止了【le】🛡他们的【tā men de】工作,由他们📳来告诉你出现【xiàn】🏄的【de】问题似乎让你延期【nǐ yán qī】🔹解决这【jiě jué zhè】个【gè】问题🖊了【le】🛡。然而,与用户🃏交流是【shì】你发现【xiàn】🏄问题和【wèn tí hé】改善程序的【de】惟一有效【yī yǒu xiào】💏方法。

现【xiàn】🏄在你将【zài nǐ jiāng】可以知道在【zài】只给你冲突地址🛏的【de】情况🥀下【xià】,如何轻松发现【xiàn】🏄准确路【zhǔn què lù】😛径、源代码🧀文件🚆、发生【fā shēng】Access violation错误的【cuò wù de】🏃行:
“Search - Find Error…”。

当一个【yī gè】运行期【yùn háng qī】⛽Access violation出现【xiàn】🏄时【shí】,你的【de】用户得到【hù dé dào】⚡的【de】错误信息【xìn xī】🍩类似于【lèi sì yú】如下情【rú xià qíng】况❄:
Access violation at address <十六进🚬制值【zhì zhí】>
in module <应用程序名>
Read of address <十六进🚬制值【zhì zhí】>

如果你的程序【de chéng xù】在【zài】Delphi IDE里【lǐ】🌁包含debug信息【xìn xī】🍩编译【biān yì】👬,你可以【nǐ kě yǐ】定位到【dìng wèi dào】导致这【dǎo zhì zhè】🤚个错误【gè cuò wù】源代码🧀这一行🎩。
在【zài】Delphi程序中,一个【yī gè】最普遍导🎶致Access Violation错误的【cuò wù de】🏃原因是【yuán yīn shì】使用了【shǐ yòng le】➖一个没【yī gè méi】有被【yǒu bèi】🌈创建的【chuàng jiàn de】对【duì】⛽象【xiàng】。如果第【rú guǒ dì】二【èr】个【gè】地址🛏<十六进🚬制值【zhì zhí】>是【shì】FFFFFFF或【huò】0000000,十有八九就是【jiù shì】📛你访问【nǐ fǎng wèn】🐹? 了【le】一个【yī gè】🧒没有被【méi yǒu bèi】🌈建立的对象【de duì xiàng】🤥。例如【lì rú】,你调用❌了【le】一个【yī gè】🧒表单的【de】事件【shì jiàn】🥃,但这个【gè】🚅表单不【biǎo dān bú】🔢是【shì】自动创建的【chuàng jiàn de】,也没有代码实🕤例化🦏。

?procedure TfrMain.OnCreate(Sender: TObject);
var BadForm: TBadForm;
begin
//这里【lǐ】🌁将会产生【shēng】✌Access violation
BadForm.Refresh;
end;

假设【jiǎ shè】🧝BadForm在工程【zài gōng chéng】🚃选项“Available Forms”窗口列表里【lǐ】🌁——这个【gè】窗口是【shì】需要手工创建和释放的【shì fàng de】📣。在上面【zài shàng miàn】的【de】代码🧠里【lǐ】🌁调用BadForm窗口的【de】Refresh方法就会导致🍫Access violation。

如果你在【zài】Debugger选项窗口使“Stop on Delphi Exceptions”生【shēng】效,那么就会弹出【huì dàn chū】🈸下面的【xià miàn de】🍘信息【xìn xī】🍩:
The message states that the EAccessViolation has occurred. The EAccessViolation is the exception class for invalid memory access errors.

这是【shì】你在【zài】设计程序时【shí】😙将会看【jiāng huì kàn】到的【de】信息【xìn xī】🍩,下一个【xià yī gè】👇信息框【xìn xī kuàng】🕷将会出🍅现【xiàn】🏄,然后程🐱序失败了【le】🍸:
Access violation at address 0043F193
in module ’Project1.exe’
Read of address 000000.

第一个【dì yī gè】十六进🚬制数【zhì shù】🧗0043F193是【shì】发生【fā shēng】Access violation的编译【de biān yì】👒代码(Project1.exe)的【de】运行♓期错误的【cuò wù de】🏃地址🛏。在【zài】IDE里【lǐ】选择📴菜单项【cài dān xiàng】“Search|Find Error…”,在【zài】对【duì】话框里输【kuàng lǐ shū】🌩入错误🧙发生【fā shēng】的【de】地址🐷(0043F193)后点击“OK”按钮【àn niǔ】。Delphi将会重【jiāng huì chóng】新编译【biān yì】👬你的【de】工程文件🚆,然后显示发生【shì fā shēng】运行期【yùn háng qī】⛽错误的【cuò wù de】🏃那一行♈代码,这里【lǐ】🌁就是【jiù shì】BadForm.Refresh这一行🎩了【le】🛡。

下【xià】面列出了【le】💭Delphi环境下【xià】导致🍫Access violation错误的【cuò wù de】🏃大部分【dà bù fèn】🔒常见原🍸因【yīn】。这个【gè】列表不是【shì】也不可【yě bú kě】能覆盖所有可能出现【xiàn】🏄的【de】Access violation的【de】情况🥀。请在【zài】论🐰坛上发🕥送你的【de】Access violation信息【xìn xī】🍩,大家可【dà jiā kě】以试着一起解决这【jiě jué zhè】个【gè】问题🖊——真正的【zhēn zhèng de】实际事例一般情况下【xià】比列出📭来的【de】错误隐晦🛬得多🌒。

1. 调用一💂个【gè】不存在的对【zài de duì】象【xiàng】🤥
如上所述🎩,大部分【dà bù fèn】🔒Access violation的合理【de hé lǐ】原因是【yuán yīn shì】使用了【shǐ yòng le】➖没有被【méi yǒu bèi】🌈创建或【chuàng jiàn huò】者已经🈚被释放【bèi shì fàng】的【de】📣对象【duì xiàng】🤥。为了【wéi le】🛡防止这种类型的【de】🏥Access violation的【de】发生【fā shēng】,请确保你访问【nǐ fǎng wèn】🐹的任何【de rèn hé】对象【duì xiàng】🤥都首先被创建【bèi chuàng jiàn】了【le】🛡。例如【lì rú】,当一个【yī gè】Table定位在【dìng wèi zài】一个没【yī gè méi】有被【yǒu bèi】🌈创建的【chuàng jiàn de】data module(从🚗auto-crete窗口里【chuāng kǒu lǐ】💚移走了【le】🛡)里【lǐ】🌁,你可能【nǐ kě néng】🥟在窗体【zài chuāng tǐ】的【de】OnCreate事件【shì jiàn】🥃里【lǐ】🌁打开这个【gè】表。

在【zài】下面的【xià miàn de】🍘代码里【lǐ】🌁,在调用【zài diào yòng】💽一个已【yī gè yǐ】经被删【jīng bèi shān】🎂除了【le】🛡的对象【de duì xiàng】🤥(b:TBitmap)事件【shì jiàn】后🐟,一个【yī gè】Access violation出现了【chū xiàn le】🕖:
var b:TBitmap;
begin
b:=TBitmap.Create;
try
//对【duì】b对象【duì xiàng】🤥进行一些操作🚇
finally
b.free;
end;
...
//由于b已经被释放【bèi shì fàng】,一个【yī gè】Access violation错误将会出🍅现【xiàn】🏄
b.Canvas.TextOut(0,0,’这是【shì】一个【yī gè】 Access Violation’); <

关键词【guān jiàn cí】:解决办法,access,violation

阅读本文后您有什么感想? 已有 人给出评价!

  • 14 欢迎喜欢
  • 14 白痴
  • 14 拜托
  • 14 哇
  • 14 加油
  • 14 鄙视