一种在接口中跨dll分配释放内存的方法
本帖最后由 zengweihong 于 2009-9-10 10:22 编辑
多个模块需要配合进行内存的分配和释放,下面接口 class IMalloc { public: virtual void* Alloc(unsigned size) = 0; virtual void Free(void* ptr) = 0; }; 接口的使用 class IFoo { pubic: virtual int DoSomeThing(const char* a, IMalloc* allocator); ...... } DoSomeThing接口的调用方实现IMalloc并传入allocator对象,被调用方可以使用allocator->Alloc进行内存分配和allocator->Free进行内存释放。所分配和释放的内存都由调用方 提供和管理;被调用方是所分配内存的使用者。 |