应用程序定义的异常 - 不知道出了什么问题

时间:2011-08-22 14:30:39

标签: delphi exception

有人可以帮我解决这个错误

enter image description here

Project1.exe出现错误消息:'应用程序定义的异常(代码0xc0000008)位于0x7c90e4ff'。流程已停止。使用步骤或运行继续。

Win XP 上使用 Delphi 7 。安装的是默认的原始Delphi 7组件。我的新项目中只有一个按钮和opendialog组件。我在ButtonClick过程中仅使用一行代码

OpenDialog1.execute;

当出现此图片警告时。打开dailog显示为毫秒然后报告Delphi错误,然后我可以从打开的对话框中选择任何内容。

可能有什么不对?这种行为是新的,因为我之前使用过opendialog没有问题。

TIA

P.S。 程序在Delphi IDE之外运行。

P.P.S。 我卸载了GExperts,DelphiSpeedUp,但问题仍然存在。

6 个答案:

答案 0 :(得分:4)

环顾四周,我发现这个错误似乎时不时发生。我不知道真正的原因,但它似乎与调试器有关。 我猜这是一种模糊的调试器错误,只有当许多不同的东西聚集在一起时才会发生。

FWIW,我见过D4到D7甚至D2006的报道。它似乎在更高的版本中消失了,虽然这不太确定。

我看到的报告越多,我注意到它似乎总是发生在Delphi调试器中。更多证据表明它是调试器,IMO。如果是这种情况,那么你无能为力。

答案 1 :(得分:3)

您的问题可能是抛出异常的Explorer插件。

它可能会在文件上下文菜单中添加内容,例如Tortoise SVN(例如,我不是说这是罪魁祸首),或者它可能是创建文件预览或甚至是木马或广告软件的东西。

文件打开对话框使用与资源管理器相同的代码来显示文件列表,因此您为资源管理器添加的任何内容也会加载/用于文件打开对话框。在资源管理器中,它可能抛出异常而不是杀死任何东西,但是在你的程序中(在调试器中运行时)你可以看到它。

如何解决?尝试卸载您知道的任何资源管理器插件......如果这不起作用,可能会对广告软件和特洛伊木马进行扫描。

答案 2 :(得分:1)

在崩溃的代码行上设置断点。进入调试器(运行应用程序)。

当您点击此行时,请检查以下内容:

  • 评估表达式Self并确保它不是nil
  • 评估表达式Self.OpenDialog1并确保它不是nil

此外,查找释放(销毁)您正在处理的对象的代码。如果你真的没有编写额外的代码,并且有一个全新的空应用程序,那么在一个新的新项目中,确实很难理解你如何遇到像你描述的问题。

答案 3 :(得分:0)

这里的办公室也出现同样的问题。

面对问题的人告诉我,他设法通过告诉调试器将错误0xc0000008留给应用程序处理来解决它。

/options/Debugger Options/Embarcadero Debuggers/Native OS Exceptions/32bit Windows OS Exceptions/

发生了以下配置:

  • Windows XP
  • Rad Studio XE(德尔福)
  • 刚刚安装了Amazon Cloud Drive

答案 4 :(得分:0)

我在运行W8的D2007上遇到了同样的问题。我将代码移动到旧的WXP机器上,程序在Delphi内外都运行良好。在我们的例子中,仅供参考,该程序达到了引发Edatabaseerror

的代码的两倍

过程DatabaseError(const消息:WideString;组件:TComponent = nil); 开始   如果已分配(组件)和(Component.Name<>'')则     引发EDatabaseError.Create(WideFormat('%s:%s',[Component.Name,Message]))否则     提出EDatabaseError.Create(Message); 端;

经过调试后,我发现臭名昭着的错误是由Exphi创建的,因为Exception.Create构造函数之后是一个不可连续的异常,但为什么仍然是一个错误的

我还尝试了建议的解决方案,让调试器处理异常但是没用,因为在我们的例子中每次都会更改异常编号

答案 5 :(得分:0)

首先 - 抱歉我的英语。 我在同一个Delph7上得到了同样的错误。 在我的情况下,这个错误是由递归引起的)