【问题标题】:Delphi - application with activeX control causes "appcrash"Delphi - 带有activeX控件的应用程序导致“appcrash”
【发布时间】:2010-10-13 11:38:27
【问题描述】:

我必须使用 ActiveX 对象 (QlikOCX.ocx)。所以我创建了一个非常小的示例应用程序,它运行良好,但是当我关闭应用程序时,我收到如下错误:

"application.exe 不再工作 -> 在线搜索解决方案并关闭程序 -> 关闭程序

问题详情: 问题事件名称:APPRCASH ……”

我想知道是否有可能以某种方式捕获此错误? 谢谢!

【问题讨论】:

  • 关于这个 ActiveX 控件的信息可以在qlikview.com找到...
  • 感谢您的有用建议。我检查了这个网站很多次,没有找到关于 ActiveX 控件的有趣信息。
  • 好吧,其他人可能不知道 aciveX 控件,因此对他们来说它也很有用。 :-)
  • 啊好吧...对不起,弄错了;)

标签: delphi ocx qlikview


【解决方案1】:

您得到的错误可能有很多原因。这可能是您自己的代码或 ActiveX 控件中的问题。例如,您的进程可能会终止,但其中一个线程仍在运行,正在轮询信息或其他什么。
可能是您没有正确释放 ActiveX 控件,从而导致一些未完成的事情落后。在调试器中运行您的应用程序可以为您提供错误的位置,但它可能会更复杂一些。有时,sh*t 只是发生...
您是否创建了一个小型控制台应用程序来测试此 OCX?或者您是否将其作为组件导入并添加到表单中?
对于控制台应用程序,请确保您没有使用全局变量来存储 OCX 对象!全局接口对象并不总是正确释放。
如果在表单上使用组件,请在此表单上添加 OnClose 事件,并在此事件中添加代码以清理 OCX 控件。不要释放它,而是看看它是否有“关闭”、“清除”或“终止”功能或其他需要调用的清理方法。同样,不要将全局变量用于 OCX 控件等基于接口的类型。

【讨论】:

  • 嗨,谢谢你的提示。我使用 ocx 作为组件并将其放到表单上。我试过你的建议,但没有成功。我很确定这是 ActiceX 控件本身的错误。当我在运行时创建控件的对象,然后调用 free 方法时,我得到与关闭应用程序时相同的错误...
【解决方案2】:

在退出应用程序之前尝试调用 ActiveX.CoFreeUnusedLibraries。如果您在 7.1 之前使用 Delphi,请查看 Quality Central Report#:3272,这是一个错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-08
    • 2013-02-11
    • 2011-01-31
    • 2012-11-02
    • 2014-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多