用ads改文字内容失败?
本帖最后由 xinxirong 于 2016-4-25 10:32 编辑BOOL chgEntDxf1(ads_name ent, wchar_t * str)
{
struct resbuf *rbTargEnt; // resbuf to hold ent data
struct resbuf *rbTrav; // resbuf to traverse linked list
struct resbuf *tmp;
int rc; // Return code
wchar_t *sp2;
rbTargEnt = acdbEntGet(ent);
if(!rbTargEnt)
{
acutPrintf(_T("\nacdbEntGet失败. "));
return FALSE;
}
rbTrav = rbTargEnt;
while(rbTrav)
{
switch(rbTrav->restype)
{
case 1 : // 更改文字内容
//_tcscpy( rbTrav->resval.rstring,str);
tmp = acutBuildList(RTSTR, str, 0);
sp2 = rbTrav->resval.rstring;
rbTrav->resval.rstring = tmp->resval.rstring;
tmp->resval.rstring = sp2;
acutRelRb(tmp);
break;
}
rbTrav = rbTrav->rbnext;
}//while
rc = acdbEntMod(rbTargEnt);
if(rc != RTNORM)
{
acutPrintf(_T("\n更改dxf组码1失败,可能是对象图层锁定"));
}
//清理resbuf
if(rbTargEnt)
{
acutRelRb(rbTargEnt);
}
return TRUE;
} 先是直接_tcscpy( rbTrav->resval.rstring,str); 改lisp值,errno系统变量为2 Invalid entity or selection set name
有人说直接改dxf1组码的值会很危险,必须新建resbuf*,但errno系统变量为101,也不知道是什么错误号。
页:
[1]