【发布时间】:2012-05-26 06:46:10
【问题描述】:
我需要继承一个带有抽象方法的接口, 在 VB/c# 中,我们只需覆盖接口中的方法,而无需为 IUnknown 或 IDispatch 方法编写代码
但在 C++ 中, 在类中继承接口并在接口中覆盖方法之后, 当我试图实例化派生类时 我收到以下错误
error C2259: 'Imyinterface' : cannot instantiate abstract class
1> due to following members:
'HRESULT IUnknown::QueryInterface(const IID &,void **)' : is abstract
'ULONG IUnknown::AddRef(void)' : is abstract
'ULONG IUnknown::Release(void)' : is abstract
所以我需要覆盖/定义 IUnknown 和 IDispatch 方法,例如addref,Release,QueryInterface,invoke,gettypeinfo
因为它们似乎是标准函数,我在哪里可以获得它们的代码/定义,例如 ATL 或任何类型库? 或任何我可以获得上述方法的代码/示例的参考资料
【问题讨论】:
-
我添加了 COM 标记,因为这个问题似乎与 COM 密切相关。
标签: c++ inheritance com interface idispatch