接口的实现继承

hongkun18 2011-11-18 10:42:06
直接在 idl中 添加 一个 接口 :
interface IC : IDispatch{
};
通过 向导添加 简单对象:
interface IA :IC/*IDispatch*/{ //修改使得IA:IC
};

我想 写个模版 类,这个 类实现 IC接口,之后在CA中继承 :
模版类:

template <class _T, class _Interfac>
class ATL_NO_VTABLE CICImpl :public _Interfac
{
public:

};
之后 在 A的头文件中 :
class ATL_NO_VTABLE CA :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CA, &CLSID_A>,
public IDispatchImpl<IA, &IID_IA, &LIBID_atljicheng2Lib, /*wMajor =*/ 1, /*wMinor =*/ 0>,
public CICImpl<CA,IC>

。。。。

BEGIN_COM_MAP(CA)
COM_INTERFACE_ENTRY(IA)
COM_INTERFACE_ENTRY(ISupportErrorInfo)
COM_INTERFACE_ENTRY(IConnectionPointContainer)
COM_INTERFACE_ENTRY2(IDispatch,IA)
END_COM_MAP()


这个 中提示错误啊?error C2259: 'ATL::CComObject<Base>' : cannot instantiate abstract class
为什么啊 ,应该 如何去改写。
...全文
146 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wshcdr 2011-11-19
  • 打赏
  • 举报
回复
没看明白
Daisy__Ben 2011-11-19
  • 打赏
  • 举报
回复
感觉ATL太难没多少人敢碰这个东西,因为大家都觉得不实用,里面又是一大堆模式和泛型的东西不容易理解。楼主敢于有自己想法,佩服!
schlafenhamster 2011-11-19
  • 打赏
  • 举报
回复
cannot instantiate abstract class
虚基类不能实例!即抽象类不能用来实例对象,他是用来被继承的,你必须先派生。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧