dipenghao 发表于 2005-3-30 19:12:00

!stub.cpp@148错误提示?

AcDbObjectId blockId;<BR>                       int retCode = 0;<BR>                       AcDbBlockTable *pBlockTable = NULL;<BR>                       AcDbBlockTableRecord* pBlockRecord<BR>                                               = new AcDbBlockTableRecord;<BR>               <BR>                       pBlockRecord-&gt;setName("样式");<BR>                       AcGePoint3d basePoint(asPnt3d(pt));<BR>               pBlockRecord-&gt;setOrigin(basePoint);<BR>                       acdbHostApplicationServices()-&gt;workingDatabase()<BR>                                                       -&gt;getSymbolTable(pBlockTable, AcDb::kForWrite);<BR>                       pBlockTable-&gt;add(blockId, pBlockRecord);<BR>                       pBlockTable-&gt;close();


<BR>       AcDbPolyline *pPoly=new AcDbPolyline();<BR>       //形成闭合多段线 已经定义pd1,pd2,pd3;<BR>       pPolyA-&gt;addVertexAt(0,pd1,0,-1,-1);<BR>       pPolyA-&gt;addVertexAt(1,pd2,0,-1,-1);<BR>       pPolyA-&gt;addVertexAt(2,pd3,0,-1,-1);<BR>       pPolyA-&gt;setClosed(Adesk::kTrue);


       <BR>       AcDbObjectId Id;<BR>       pBlockRecord-&gt;appendAcDbEntity(IdA, pPoly);<BR>       pPoly-&gt;close();<BR>       AcDbObjectIdArray IdArr;<BR>       IdArr.append(IdA);


                                AcGeVector3d normal(0,0,1);<BR>                        AcDbHatch       *p_AcDbHatch1=new AcDbHatch();<BR>                        p_AcDbHatch1-&gt;setNormal(normal);<BR>               p_AcDbHatch1-&gt;setElevation(0.0);<BR>               p_AcDbHatch1-&gt;setAssociative(true);<BR>               p_AcDbHatch1-&gt;setPatternScale(5);<BR>               p_AcDbHatch1-&gt;evaluateHatch(false);


                                if(Acad::eOk!=p_AcDbHatch1-&gt;appendLoop(AcDbHatch::kDefault ,IdArr))<BR>                {<BR>                        <BR>                        delete p_AcDbHatch1;<BR>                        return       ;<BR>               }


        //执行下面这条语句时候出现错误提示。AutoCAD运行挺长时间才出现错误提示


//用VC调试,好像是进程已经Exit(0)终止了<BR>                       if( Acad::eOk!=p_AcDbHatch1-&gt;setPattern(AcDbHatch::kPreDefined,"SOLID"))<BR>                {<BR>                <BR>                        delete p_AcDbHatch1;<BR>                        return       ;<BR>                }<BR>                                       if( Acad::eOk!=p_AcDbHatch1-&gt;setHatchStyle(AcDbHatch::kNormal))<BR>                {<BR>                <BR>                        delete p_AcDbHatch1;<BR>                        return ;<BR>                }<BR>               if(Acad::eOk!=p_AcDbHatch1-&gt;evaluateHatch(false))<BR>                {


                        delete p_AcDbHatch1;<BR>                        return       ;<BR>                }<BR>               <BR>               AcDbObjectId HatchId1;<BR>               pBlockRecord-&gt;appendAcDbEntity(HatchId1,p_AcDbHatch1);<BR>                                       p_AcDbHatch1-&gt;close();


上面是定义块的一部分代码,在当前文档中使用没有问题,但是用executeInApplicationContext(void (*procAddr)(void *)pFunc,void *pData ) const = 0;


函数切换文档,打开另一个文件,时候,在pFunc函数中使用,执行上述代码出现的错误;新文档已经设置了当前文档和活动文档,并且设置了写保护,加入实体没有问题。


请帮忙分析一下,是什么原因引起?

freejustin 发表于 2005-6-17 15:24:00

新文档已经设置了当前文档和活动文档,并且设置了写保护,加入实体没有问题。


请问如何实现?可以设置当前活动文档,但是不能立即向该文档加入实体,必须另外重新再发一个命令。可以和你交流,欢迎和我联系?
页: [1]
查看完整版本: !stub.cpp@148错误提示?