struct resbuf类型的加入函数acutBuildList 添加实体的扩展数据
程序如下
思路是想对实体entId里面加入扩展数据 数据就是字符串数组里面的内容pipepointArray
现在的问题是 用acutBuildList加入的时候能不能用一个for语句把字符串数组里面的内容一个一个添加进去
可是acutBuildList好像是针对确定个数的 下面的是从网上找的 但是无法实现
bool CCreateEnt::CreatePipePointXData(AcDbObjectId entId,CStringArray &pipepointArray)//给每个点添加扩展数据
{
int i,len;
AcDbXrecord *pXrec=new AcDbXrecord;
AcDbObject *pObj;
AcDbObjectId dictObjId,xRecObjId;
AcDbDictionary *pDict;
struct resbuf *pRb;
acdbOpenObject(pObj,entId,AcDb::kForWrite);
pObj->createExtensionDictionary();
dictObjId=pObj->extensionDictionary();
pObj->close();
acdbOpenObject(pDict,dictObjId,AcDb::kForWrite);
pDict->setAt("XRecord",pXrec,xRecObjId);
pDict->close();
len=pipepointArray.GetSize();
char *temp;
for(i=0;i<len;i++)
{
temp=(LPSTR)(LPCTSTR)pipepointArray.GetAt(i);
pRb=acutBuildList(RTRESBUF,pRb,AcDb::kDxfText,temp,RTNONE);
}
pXrec->setFromRbChain(*pRb);
pXrec->close();
acutPrintf("\nThe first data is:%s",pRb->resval.rstring);
acutRelRb(pRb);
return true;
}
高手在哪里? 用acutNewRb()函数创建链表即可,使用循环依次加入。 xgready 发表于 2014-3-26 10:02 static/image/common/back.gif
用acutNewRb()函数创建链表即可,使用循环依次加入。
能说具体点吗?这样会不会消耗很多的内存 我扩展的数据大概有30条左右 rb->rbnext=acutNewRb这种方式,注意释放即可。 xgready 发表于 2014-3-27 11:26 static/image/common/back.gif
rb->rbnext=acutNewRb这种方式,注意释放即可。
是用acutRelRb来释放吗? 是的。
http://www.pudn.com/downloads613/sourcecode/graph/detail2496604.html
这里是一个详细的例子,你可以看看,和你的情况类似。 xgready 发表于 2014-3-28 14:22 static/image/common/back.gif
是的。
http://www.pudn.com/downloads613/sourcecode/graph/detail2496604.html
这里是一个详细的例子, ...
多谢 这个问题已经解决了 方便留个QQ吗?
页:
[1]