CreateInstance(&pEvent)创建的实例需要client端手动释放吗? 那帖我不能再加分了,重开帖。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不需要,只需要按com规范release就行了。 当然需要释放,按照ATL模板创建的组件内部都在维护引用计数,所以CreateInstance产生的对象也一样需要调用Release。你创建出来的IDispatch*可以缓存起来,在调用了unadvise之后就可以Release了。 我明白1楼的意思,其实是统一的,1楼是说不能直接delete,而是要通过Release来间接释放。 IDispatch* pEvent = NULL; MyInspectorEvent::CreateInstance(&pEvent); MyInspectorEvent* p = (CMyInspectorEvent*)pEvent; hr = p->DispEventAdvise((IDispatch*)spInspector);pEvent->Release(); //这里就可以release了吧?在DispEventUnadvise时,我是由activeInspector来得到当前的inspector对象指针作为参数的,是否可以?还是非要保持这个IDispatch* pEvent? 最好缓存,要不然你调用unadvise时从哪得到参数? 关于对话框自动关闭的问题 路由器是不是相当于一个NAT设备? 请问这样一个需求能够实现吗(是有关加密的)?能提供技术思路的全分奉送! 怎么在VC的对话框中加入一条横线 组件的函数能否返回ADO的RecordSet对象 急!SQL语句求教,出错,实在弄不明白 在CDialog中加了CListCtrl,移动窗口的时候,CListCtrl不能正确重画,怎么办? 剪贴版问题 急问:如何去掉控制台程序在任务栏的显示?? 就没人用过多媒体时钟吗?!!!! 共享读,互斥写 一个关于游戏界面绘图的问题
你创建出来的IDispatch*可以缓存起来,在调用了unadvise之后就可以Release了。
MyInspectorEvent::CreateInstance(&pEvent);
MyInspectorEvent* p = (CMyInspectorEvent*)pEvent;
hr = p->DispEventAdvise((IDispatch*)spInspector);
pEvent->Release(); //这里就可以release了吧?
在DispEventUnadvise时,我是由activeInspector来得到当前的inspector对象指针作为参数的,是否可以?还是非要保持这个IDispatch* pEvent?