我有一个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