Delphi - 使用activeX控件的应用程序导致“appcrash”

时间:2010-10-13 11:38:28

标签: delphi ocx qlikview

我必须使用ActiveX对象(QlikOCX.ocx)。所以我创建了一个非常小的示例应用程序,它工作正常,但是当我关闭应用程序时,我得到这样的错误:

“application.exe不再起作用了 - >在线搜索解决方案并关闭程序 - >关闭程序

问题详情: 问题事件名称:APPCRASH ......“

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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