leafsoar 发表于 2004-2-9 09:00:00

求助:请问AcArray可以组织一系列AcDbLine对象吗?

如题(vc7.0开发autocad2004)


                                       我想组织一系列AcDbLine对象


                                       当使用vector模板类时总是出现如下错误:


d:\Program Files\Microsoft Visual Studio .NET\Vc7\include\xmemory(42): error C2661: “AcHeapOperators::operator new” : 没有重载函数接受 2 个参数


                                       不知道为什么。


                                       当我使用AcArray时候,因为找不到相关的例子,不懂得如何初始化AcArray


                                       AcArray&lt;AcDbLine&gt; *lineArray;<BR>                                       AcGePoint3d point1(1,2,0);<BR>                              AcGePoint3d point2(2,3,0);<BR>                                       AcDbLine *pLine=new AcDbLine(point1,point2);<BR>                                       lineArray-&gt;append(*pLine);


此时会有lineArray未初始化的警告,编译后运行时有如下错误:


                               无法找到动态链接库ACAD.EXE于指定的路径..................


                               恳请诸位指点。最好能提供使用AcArray的例子(我还没找到)。

JohnSmith 发表于 2004-2-11 17:18:00

我在用vc6编Acad2000程序时,较少用AcArray(ARX自带的类),用MFC类库的CObjectArray类,里面可存储CObject类对象的指针。


第一句改为AcArray&lt;AcDbLine&gt; *lineArray=new(AcArray&lt;AcDbLine&gt;);


可能会有用

comseg007 发表于 2004-2-11 17:43:00

不知能否这样:


                               AcArray lineArray;


                                       AcGePoint3d point1(1,2,0);<BR>                              AcGePoint3d point2(2,3,0);<BR>                                       AcDbLine *pLine=new AcDbLine(point1,point2);<BR>                                       lineArray.append((void*)pLine);



或干脆:


class AcDbLineArray : public AcGeVoidPointerArray


{


                                       public:


                                                               const AcDbLine* at(const int index) const;


                                                               BOOL append(AcDbEntity* line);


};


const AcDbLine* ::at(const int index) const


{       return (const AcDbLine* )AcGeVoidPointerArray::at(index);}


BOOL ::append(AcDbEntity* line)


{


       if(line==NULL)


{return FALSE;}



if(cast(line)!=AcDbLine::) //


{ return FALSE;}


}
页: [1]
查看完整版本: 求助:请问AcArray可以组织一系列AcDbLine对象吗?