我用C ++编写,在Internet浏览器8在大多数情况下(大约90%)时运行的标签或包含控制浏览器被关闭,则访问冲突这样的ActiveX控件:

The thread 'Win32 Thread' (0x1bf0) has exited with code 0 (0x0).
Unhandled exception at 0x77b3b9fd in iexplore.exe: 0xC0000005: Access violation reading location 0x65007408.

访问冲突调用的OnDestroy(之后发生),但在调用控制的析构函数之前。

在调试输出表示:

No symbols are loaded for any call stack frame. The source code cannot be displayed.

我的代码没有存在于堆栈跟踪,虽然也许堆在执行过程中的一些较早点损坏。

什么生命周期事件确实调用的OnDestroy()和控制的析构函数之间的ActiveX控件接收?

有帮助吗?

解决方案

据我所知,没有严格为ActiveX事件的生命周期,这取决于主机侧。如果您的控件使用一些AJAX框架,例如,的OnDestroy()的调用后的OnCreate(),而不调用析构函数。所以,确保你没有的OnDestroy()处理函数中未初始化操作。

您可以加载ActiveX控件测试容器控件并播放激活/停用,也许这将是有益的。

通过调试工具启用应用程序验证的Windows 并确保调试器下载OS调试符号。在这种情况下堆栈跟踪将会提供更多的信息。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top