如何在COM中使用Array,List,Map存储对象

a_gan 2000-06-09 11:11:00
能否这么做:
class ATL_NO_VTABLE CNavDbSpatial :
......
{
public:
CNavDbSpatial(){}
......
};

typedef CTypedPtrArray<CObArray,CNavDbSpatial*> CNavDbSpaArray;

在别处定义:

CNavDbSpaArray m_arSpatial;

在后面使用:

CComObject<CNavDbSpaNode>* pNew = new CComObject<CNavDbSpaNode>;
m_arSpatial.Add(pNew);
出错:

我该如何做?????????
...全文
262 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mzjs 2000-06-28
  • 打赏
  • 举报
回复
可以使用STL(标准模版库)中的vector、List、Map模版。

也可以在生成ATL项目时选择支持MFC,就可以使用list,map,array了.
a_gan 2000-06-19
  • 打赏
  • 举报
回复
如何新建CNavDbSpaNode对象往CNavDbSpaArray加:(请举例)
geofee 2000-06-19
  • 打赏
  • 举报
回复
typedef CTypedPtrArray<CObArray,CComObject<CNavDbSpaNode>* > CNavDbSpaArray;
a_gan 2000-06-12
  • 打赏
  • 举报
回复
是的,CObArray要求存储的对象必须从CObject派生,那么,我要在COM中实现该如何处理?
nail 2000-06-12
  • 打赏
  • 举报
回复
CObArray要求存储的对象必须从CObject派生
a_gan 2000-06-10
  • 打赏
  • 举报
回复
我的ATL工程支持MFC,但是我把CNavDbSpaNode作为新建的对象插入到CArray中,编译出错(类型不对);哪位能告知具体的实现过程:
我已前作的没有用COM,很好处理:可以动态新建对象,后存储在CMAP集合中,可以用CString关键字检索;该如何转到COM上来?????????
nail 2000-06-09
  • 打赏
  • 举报
回复
CTypedPtrArray是MFC中的类,如果你的ATL工程不支持MFC,只能使用STL中的vector, list, map等,其实STL中的模板类是很好用的。
softdoctor 2000-06-09
  • 打赏
  • 举报
回复
什么错?

3,245

社区成员

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

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