下面是找到的一个删除扩展数据的函数,但是我觉得是不是如注释那样: void delXdata() { ads_name eNam; ads_point pt; int ret = acedEntSel ("\nselect an object:", eNam, pt); if ( ret!= RTNORM) { return; } AcDbObjectId ObjId; acdbGetObjectId(ObjId, eNam); AcDbEntity *pEnt; acdbOpenAcDbEntity(pEnt, ObjId, AcDb::kForWrite); resbuf *xdata = pEnt->xData(NULL); if (xdata) { xdata->rbnext = NULL; //是不是要先delete,再= NULL?不然原来的内容没有释放啊!如果有多个rbnext 的话,是否要循环全部删除?而不只删除 一个? pEnt->setXData(xdata); acutRelRb(xdata); } pEnt->close(); } |