Delphi-从IDE中运行应用程序时出现外部异常C0000008

Delphi-从IDE中运行应用程序时出现外部异常C0000008,delphi,activex,Delphi,Activex,从IDE中运行应用程序并附加调试器时,当它尝试连接到导入的ActiveX控件时,会引发异常“外部异常C0000008” 如果应用程序是独立运行的,或者未选中Rad Studio选项/调试器选项/集成调试,则程序将按预期工作,没有异常,ActiveX控件将返回预期结果 项目中还有其他ActiveX控件,所有这些控件都可以正常工作 我试过: -重新安装ActiveX控件 -重新导入ActiveX控件 -删除可能导致冲突的任何软件(专家/插件等) -关闭大多数正在运行的应用程序和服务等,以防它们引起冲

从IDE中运行应用程序并附加调试器时,当它尝试连接到导入的ActiveX控件时,会引发异常“外部异常C0000008”

如果应用程序是独立运行的,或者未选中Rad Studio选项/调试器选项/集成调试,则程序将按预期工作,没有异常,ActiveX控件将返回预期结果

项目中还有其他ActiveX控件,所有这些控件都可以正常工作

我试过: -重新安装ActiveX控件 -重新导入ActiveX控件 -删除可能导致冲突的任何软件(专家/插件等) -关闭大多数正在运行的应用程序和服务等,以防它们引起冲突

搜索时,看起来其他人也遇到了同样的问题,但没有找到修复方法(除了关闭集成调试,但显然这不是一个有效的选项)

有没有人有什么想法来解决这个问题


我正在使用Delphi 2007

C0000008是为无效句柄返回的状态。请确保包装器在创建对象时为其提供了正确的句柄,而不是零(假设它因windows句柄而崩溃)


由于应用程序在未连接到调试器时运行良好,因此我假设包装器正在优雅地处理此情况,因此错误很可能发生在try/except块内。

这是不明显的函数行为和IDE选项的组合

如果应用程序在调试器下运行,则如果函数接收到无效的句柄值或伪句柄值,则会引发异常。如果关闭句柄两次,或者对FindFirstFile函数返回的句柄调用CloseHandle而不是调用FindClose函数,则会发生这种情况

因此有两个选项-检查代码中某个无效句柄正在关闭的位置,或者关闭IDE对此异常的通知。转到
Tools>options>Debugger options>Emb Debugger>Native OS exceptions
,查找
无效句柄
项,并在恢复时将
选项更改为
Run handled>。这对我有用

此解决方案的积分可从sql.ru论坛转到
\u Vasilisk\u