OCX释放问题

stivenjia 2012-01-13 01:34:08
容器对象载入OCX对象后,一切正常,在容器关闭释放时候OCX执行ExitInstance但是OCX内的dispinterface默认接口对象却没有释放然而使用IE和tstcon32测试OCX是正常的,请问这种问题怎么解决
...全文
374 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
JoeBlackzqq 2012-02-14
  • 打赏
  • 举报
回复
OCX的释放不是根据计数器,在Release()里写好的吗??

本人初级,来学习的。
jianghandaxue 2012-02-13
  • 打赏
  • 举报
回复
先用VC自带的调试工具ActiveX Control test Container工具测试,在OCX控件的destroy断点跟踪下,有没有进来
stivenjia 2012-01-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ouyh12345 的回复:]

有没有FinalRelease?
[/Quote]
没有
stivenjia 2012-01-13
  • 打赏
  • 举报
回复
在OnDestory执行如下

LPUNKNOWN pUnknown = m_XmppPlugin.GetControlUnknown();
m_XmppPlugin.DestroyWindow();
if( pUnknown )
{
while( pUnknown->Release() )
{

}
}

Release大概执行了4次,而且执行完后OCX的ExitInstance也没有触发。该OCX使用IE等测试容器没问题释放也没问题,就是被其他开发程序引用时候出现这个问题很奇怪。
fishion 2012-01-13
  • 打赏
  • 举报
回复
不明白
phoeni_xin 2012-01-13
  • 打赏
  • 举报
回复
看看。之前没遇到此问题。
ouyh12345 2012-01-13
  • 打赏
  • 举报
回复
有没有FinalRelease?
许文君 2012-01-13
  • 打赏
  • 举报
回复
是否有其他线程未释放?我觉得销毁工作最好放在destroy里
stivenjia 2012-01-13
  • 打赏
  • 举报
回复
更正一下:在容器关闭释放时候OCX没有执行ExitInstance

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧