COM跨進程內存管理

       潘叔在《COM原理與應用》p/77頁中提到,在使用


CoGetMalloc()來獲得COM內存管理器時候,如果第一個參數傳入MEMCTX_SHARED時,則使用共享內存管理器,可以在一個進程內申請內存傳入第二個進程,在第二個進程內使用此內存,並且可以釋放掉此內存。

      然而,現實中我們並不能這麼做因爲CoGetMalloc()的第一個參數無法使用MEMCTX_SHARED,詳見https://msdn.microsoft.com/en-us/library/windows/desktop/ms693395(v=vs.85).aspx。也許《COM原理與應用》這本書太老了吧。

      我們在跨進程時候仍可以使用CoTaskMemAlloc/CoTaskMemFree 和 SysAllocString/SysFreeString, 可以在一個進程中申請內存,而在另一個進程中使用或者釋放。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章