COM_INTERFACE_ENTRY2问题

贪玩的老鼠 2009-09-11 10:42:44
从VC6中如果一个简单对象要支持IPersistStreamInit接口,
只需要public IPersistStreamInitImpl<CReservation>
在BEGIN_COM_MAP(CReservation)
END_COM_MAP()
之间添加
COM_INTERFACE_ENTRY(IPersistStreamInit)
COM_INTERFACE_ENTRY2(IPersistStream,IPersistStreamInit)


可现在用VC2003的时候,
系统产生的代码没有了BEGIN_COM_MAP宏,
于是我手动增加,
可问题时,当我添加COM_INTERFACE_ENTRY2(IPersistStream,IPersistStreamInit)
编译出现错误

error C2440: “static_cast” : 无法从“IPersistStreamInit *”转换为“IPersistStream *”
与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换

error C2440: “初始化” : 无法从“ATL::_ATL_CREATORARGFUNC (__stdcall *)”转换为“DWORD_PTR”
该转换要求 reinterpret_cast、C 样式转换或函数类型转换

请问在VC2003中怎么是对象支持IPersistStreamInit接口
...全文
166 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
StrokeAce 2012-04-27
  • 打赏
  • 举报
回复
我想知道这俩宏是什么作用
yangng 2010-11-09
  • 打赏
  • 举报
回复
不懂,顶顶顶

3,245

社区成员

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

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