第一种方法,直接使用IMalloc接口进行内存管理。
调用CoGetMalloc函数获取IMalloc接口指针。
HRESULT CoGetMalloc(DWORD dwMemContext, IMalloc **pMalloc) ;
dwMemContext参数指明内存的管理方式,一种是分配的内存仅在本进程内有效, MEMCTXT_TASK。另一种是跨进程共享,MEMCTXT_SHARE。跨进程共享的内存可以被别的进程使用,甚至释放。
第二种管理内存的方法,调用COM的API函数。
void *CoTaskMemAlloc(ULONG cb);
void CoTaskMemFree(void *pv);
void CoTaskMemRealloc(void *pv, ULONG cb);