我有一個ATL類。我想知道何時調用此類的QueryInterface
以清除內存泄漏。COM_INTERFACE_ENTRY_BREAK宏不起作用
我在COM_MAP
添加COM_INTERFACE_ENTRY_BREAK
的,現在它看起來像:
BEGIN_COM_MAP(CMyClass)
COM_INTERFACE_ENTRY(IFace1)
COM_INTERFACE_ENTRY(IFace2)
//COM_INTERFACE_ENTRY_BREAK(IUnknown) // i included this too
COM_INTERFACE_ENTRY_BREAK(IFace1)
COM_INTERFACE_ENTRY_BREAK(IFace2)
END_COM_MAP()
當我開始調試(按F5鍵)我有QI術後無斷點。我敢肯定,齊叫,因爲_ATL_DEBUG_INTERFACES
顯示在輸出窗口
ATL: QIThunk - 4 LEAK : Object = 0x02150CC0 Refcount = 1 MaxRefCount = 2 CMyClass - IUnknown
泄漏我應該怎麼纔能有一個斷點停在齊打電話嗎?
謝謝。
'COM_INTERFACE_ENTRY_BREAK(IUnknown的)'只有打破** **明確。這並不意味着「通過'IUnknown :: QueryInterface'查詢時中斷」 – MSalters 2012-03-06 11:45:54
你能更詳細地解釋一下嗎?這是否意味着我無法趕上我班級IFace1被查詢的時刻? – fogbit 2012-03-06 12:02:39
你的意思是什麼「查詢」?你的意思是'IFace1 :: QueryInterface(any_IID)'或'IAny :: QueryInterface(IID_IFace1)'? – MSalters 2012-03-06 12:28:08