COM 库提供线程安全的内存分配器的实现。 (也就是说,它不能在多线程情况下引起问题。每当分配的内存区块的所有权通过 COM 接口或客户端和 COM 库之间传递时,都必须使用此 COM 分配器来分配内存。 对象内部分配可以使用所需的任何分配方案,但 COM 内存分配器是一种方便、高效且线程安全的分配器。
CoGetMalloc 对 API 函数的调用提供了指向 OLE 分配器的指针,这是 IMalloc 接口的实现。 但是,更高效的方法是调用帮助函数 CoTaskMemAlloc、CoTaskMemRealloc和 CoTaskMemFree。这些函数封装了获取任务内存分配器指针的过程,调用了相应的 IMalloc 方法,然后释放了指向分配器的指针。
相关主题