请问在VC中如何像那样实现set object = nothing这样的显示释放资源的语句?

sproll 2003-10-17 05:04:56
各位大哥,小弟先谢谢了!
...全文
37 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sproll 2003-10-20
  • 打赏
  • 举报
回复
非常非常谢谢各位大虾!小弟明白了!
atllover 2003-10-18
  • 打赏
  • 举报
回复
我说说我的看法,欢迎指正。
IObject *pObj;
pObj.CreateInstance(__uuidof(Object));
pObj.AddRef();//引用计数加一。
....
pObj开始调用Object组件的方法。
....
调用完后释放pObj所占用的资源。
pObj.Release()
智能值针就好了,自动封装了AddRef(),和Release(),用户不用手动的添加
eg.
IObjPtr pObj;
pObj.CreateInstance(__uuidof(Object));

//开始pObj的使用,无需添加引用计数,pObj自己有记录。
pObj->Show();
pObj->Gun();

//结束pObj的使用,也无需手动释放pObj,编译器自动帮助释放。

好了。
XXandOO 2003-10-18
  • 打赏
  • 举报
回复
楼上正解,智能指针就是干这个的,实际上智能指针是一个模板类,重载了"->"等运算符而已。
yaoha2003 2003-10-18
  • 打赏
  • 举报
回复
一般都是用Release()这样的成员函数来释放的
fanfyj 2003-10-18
  • 打赏
  • 举报
回复
up
LeeZi 2003-10-18
  • 打赏
  • 举报
回复
续楼上的,如果对智能指针赋空
IObjPtr pObj = NULL;
HRESULT hr = pObj.CreateInstance(__uuidof(Object));

//...

pObj = NULL; //set obj = nothing
就相当于:
set object = nothing
luohualiushui 2003-10-18
  • 打赏
  • 举报
回复
我觉得release()不就是了吗
ayqlj 2003-10-18
  • 打赏
  • 举报
回复
VC可能只能依靠自已。比如DeleteObject()之类
ColderRain 2003-10-18
  • 打赏
  • 举报
回复
同意楼上的。
warmchang 2003-10-17
  • 打赏
  • 举报
回复
VC里面没有类似set object = nothing的语句。

如果是要显示释放资源,可以获得该资源的句柄,然后DestroyWindow 试试!
sproll 2003-10-17
  • 打赏
  • 举报
回复
请问在VC中如何像VB那样实现set object = nothing这样的显示释放资源的语句?

3,245

社区成员

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

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