一个com对象能不能自杀?(在成员函数中delete this)

zharP 2005-11-25 08:35:28
我想设计一个com对象 能自己删除自己的。我希望
void main()
{
IMyComPtr spMy;
spMy.CreateInstance("MyDll.MyCom");
spMy->DoSomeThing();
return 0;
}
然后就这个MyCOM里面会开启一个新的线程做一些工作,这个线程完成之后MyCOM能够自己删除自己。
而不回因为spMy析够而结束掉。

可以直接调用 delete this吗?
谢谢
...全文
132 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zharP 2005-12-02
  • 打赏
  • 举报
回复
呵呵 多谢.检查程序中..
sinall 2005-11-28
  • 打赏
  • 举报
回复
Release内部调用了delete this,可以看源码。

所以,你没必要自己去delete
蒋晟 2005-11-27
  • 打赏
  • 举报
回复
一般在最后一个Release的时候delete this
zharP 2005-11-26
  • 打赏
  • 举报
回复
我保证外部没有使用他,是不是在delete之前调用一个Release就ok?
蒋晟 2005-11-26
  • 打赏
  • 举报
回复
你需要实现IUnknown的引用计数机制,在外部不再有对对象的引用的时候才可以安全地删除自己

3,245

社区成员

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

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