有人可以解釋一下當我們在COM對象和VB之間傳遞值時如何進行內存分配/取消分配。如何在VB中使用COM對象時正確管理內存?
我關注的是:1。
IMyInterface::Method1 ([in] BSTR* pVal, [in] SAFEARRAY(BSTR)* pArray);
做,我們需要釋放對COM對象內上述指標分配的內存?
2.
IMyInterface::Method2 ([in, out] BSTR* pVal);
在這種情況下,請問VB照顧的COM返回值釋放內存的?一旦該事件被內部處理VB(COM對象,這些返回值分配內存)
3.
IProxy_MyInterface::Event1 ([in] BSTR* pVal);
,再次,將取消分配的內存參數通過VB照顧?
感謝您的幫助。
謝謝
感謝您的澄清,如果我使用「[out]/[out,retVal] BSTR *」,那麼釋放內存是否有被調用者的責任?我認爲是這樣,因爲一旦返回值,調用者無法控制該函數。請解釋。 – Nimo 2010-02-28 07:18:59