有人可以帮我解决这个错误
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,但问题仍然存在。
答案 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/
发生了以下配置:
答案 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上得到了同样的错误。 在我的情况下,这个错误是由递归引起的)