我必须使用ActiveX对象(QlikOCX.ocx)。所以我创建了一个非常小的示例应用程序,它工作正常,但是当我关闭应用程序时,我得到这样的错误:
“application.exe不再起作用了 - >在线搜索解决方案并关闭程序 - >关闭程序
问题详情: 问题事件名称:APPCRASH ......“
我想知道是否有可能以某种方式捕获此错误? 谢谢!
答案 0 :(得分:2)
你得到的错误可能有很多原因。它可能是您自己的代码或ActiveX控件中的问题。例如,您的进程可能会终止,但其中一个线程仍在运行,轮询信息或其他任何内容。
您可能无法正确释放ActiveX控件,从而导致某些事情无法完成。在调试器中运行您的应用程序可以为您提供错误的位置,但可能会有点复杂。有时,sh * t恰好发生...
你是否创建了一个小型控制台应用程序来测试这个OCX?或者您是否将其作为组件导入并将其添加到表单中?
对于控制台应用程序,请确保您没有使用全局变量来存储OCX对象!全局接口对象并不总是正确释放。
如果在表单上使用组件,请在此表单上添加OnClose事件,并在此事件中添加应清除OCX控件的代码。不要释放它,但看看它是否有“关闭”,“清除”或“终止”功能或需要调用的其他清理方法。同样,不要将全局变量用于基于接口的类型,如OCX控件。
答案 1 :(得分:2)
尝试在退出应用程序之前调用ActiveX.CoFreeUnusedLibraries。如果您在7.1之前使用Delphi,那么请查看Quality Central Report#:3272,这是一个错误。