明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2488|回复: 4

arx问题:打开的实体怎么样才算关闭?

[复制链接]
发表于 2003-4-14 20:22:00 | 显示全部楼层 |阅读模式
在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,到底是怎么回事啊?
 楼主| 发表于 2003-4-15 00:59:00 | 显示全部楼层

哈哈,是我自己搞错了!

不是重新打开实体报错,而是重新打开后没有关闭它,autocad报错!

我查了一晚才查出来,都怪条件分支太多了,看得有点晕!
发表于 2003-4-15 16:48:00 | 显示全部楼层

我也是这个问题啊;

发表于 2003-4-15 16:56:00 | 显示全部楼层

我也是这个问题啊;

可是我的只有这几句话,还是你这个错误;
ads_entsel(en,pt);
AcDbLine *pLine;
AcDbObjectId eId;
acdbGetObjectId(eId,en);
AcDbEntity *pEnt;
pa
acdbOpenObject(pEnt,eId,AcDb::kForWrite);//yu运行到这里就出现你一样的错误
 楼主| 发表于 2003-4-15 19:43:00 | 显示全部楼层

有没有用close关掉打开的实体啊?

可能是后面没有close你这句程序所打开的实体。

我的就是这样,以为后面的条件分支已经把所有的情况都包含进去了(每个分支都有close语句),其实不然,结果就是程序执行到最末也没把打开的实体关闭(这样cad也会报错)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 19:32 , Processed in 0.168890 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表