com组件序列化问题

bitsbird 2010-04-27 10:21:48
vc++6.0的com组件通过tlbimp转化成托管dll供.net调用,
先转化后的dll中的class并没有[Serializable]的标签,
现将com组件支持序列化.
class ATL_NO_VTABLE CBfsKernel2 : public CObject,
public CComObjectRootEx<CComMultiThreadModel>,
public CComCoClass<CBfsKernel2, &CLSID_BfsKernel2>,
public IDispatchImpl<IBfsKernel2, &IID_IBfsKernel2, &LIBID_BFSCOMKERNEL2Lib>
编译后提示

IMPLEMENT_SERIAL(CBfsKernel2, CObject, 1)
报错cannot instantiate abstract class due to following members
但实际上CBfsKernel2类并没有虚函数,求教
...全文
123 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
gw_net 2010-05-01
  • 打赏
  • 举报
回复
你定义的接口,没有实现
eduyu 2010-04-30
  • 打赏
  • 举报
回复
像IDispatchImpl这样的com接口,全是虚函数,com必然有虚函数和虚函数表,实际上com就是对虚函数和虚函数表做了跨语言跨平台的规定而已,是对c++缺乏二进制规范的一个补充。
尹成 2010-04-27
  • 打赏
  • 举报
回复
建议定义一个指针,这样就不同了,指针是什么?大家都知道,无论它指向的是内部类型还是自己定义的结构体类型还是类的类型变量,它只不过就是一个具有32BIT也就是4个字节内存的空间而已,不需要其他任何信息了,所以能成功定义一个抽象类的指针变量。
visualassist4680 2010-04-27
  • 打赏
  • 举报
回复
不懂,帮顶

3,245

社区成员

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

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