首页 > 代码库 > COM的内存管理
COM的内存管理
内存管理的原则为:谁申请,谁释放。
但是COM 从方便性和效率出发,采用的内存管理方式为:函数内部根据实际需要动态申请内存,而调用者负责释放。
COM中提供了三种内存分配释放函数:
BSTR | IMalloc接口 | COM库 | |
申请 | SysAllocString() | Alloc() | CoTaskMemAlloc() |
重新申请 | SysReAllocString() | Realloc() | CoTaskRealloc() |
释放 | SysFreeString() | Free() | CoTaskMemFree() |
1. CoTaskXXX( ) 函数族,其本质上就是调用C语言的库函数(malloc...);
2. IMalloc 接口是对 CoTaskXXX( ) 函数族的封装,同时增强了一些功能,比如:IMalloc::GetSize( ) 可以取得尺寸,使用 IMallocSpy 可以监视内存的使用;
例子:
1 BSTR pStr;2 ProgIDFromCLSID(CLSID_MyStringFactory, &pStr);//函数内部申请空间3 4 CoTaskMemFree(pStr);//释放空间
COM的内存管理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。