arx问题:打开的实体怎么样才算关闭?
在arx编程中,首先进行了下列操作:acdbOpenAcDbEntity(obj,eId2,AcDb::kForRead);
AcDbLine* objLine=AcDbLine::cast(obj);
p1=objLine->startPoint();
p2=objLine->endPoint();
objLine->close();
obj->close();
后来又要重新打开该直线实体,用
acdbOpenAcDbEntity(objEi2, eId2,AcDb::kForWrite);
可在cad里加载运行后,到这一句就报错说:……ewasOpenforWrite,到底是怎么回事啊?
哈哈,是我自己搞错了!
不是重新打开实体报错,而是重新打开后没有关闭它,autocad报错!我查了一晚才查出来,都怪条件分支太多了,看得有点晕!
我也是这个问题啊;
我也是这个问题啊;
可是我的只有这几句话,还是你这个错误;ads_entsel(en,pt);
AcDbLine *pLine;
AcDbObjectId eId;
acdbGetObjectId(eId,en);
AcDbEntity *pEnt;
pa
acdbOpenObject(pEnt,eId,AcDb::kForWrite);//yu运行到这里就出现你一样的错误
有没有用close关掉打开的实体啊?
可能是后面没有close你这句程序所打开的实体。我的就是这样,以为后面的条件分支已经把所有的情况都包含进去了(每个分支都有close语句),其实不然,结果就是程序执行到最末也没把打开的实体关闭(这样cad也会报错)。
页:
[1]