请教:关于添加扩展数据
请教:关于添加扩展数据
void adddlg:

naddbutton()
{
// todo: add your control notification handler code here
ads_name ent;
int adddlg::init_reg_app();
if(acdbentlast(ent)!=rtnorm) return; //获取最后的实体赋给ent.
adddlg::init_reg_app();
struct resbuf head1,*eb1=null,*eb2=null;
struct resbuf ex0,ex1,ex2;
eb1=acdbentgetx(ent,&appname1);
head1.restype=-3;
head1.rbnext=&ex0;
if(eb1==null)
{
ads_printf("\n在获取实体扩展数据时出错,请重试!");
return;
}
ex0.restype=1001; //应用程序名
ex0.resval.rstring=local_appname;
ex0.rbnext=&ex1;
ex1.restype=1000; //实体标记,这里为outlet
ex1.resval.rstring="this is flag";
ex1.rbnext=&ex2;
ex2.restype=1000; //名字
ex2.resval.rstring="zhao feng jiao";
ex2.rbnext=null;
eb2=eb1;
while (eb2->rbnext!=null)
eb2=eb2->rbnext;
eb2->rbnext=&head1;
if(acdbentmod(eb1)!=rtnorm)
{
acutprintf("\n在附加扩展数据时,系统出错.");
return;
}
while (eb2->rbnext!=null) eb2=eb2->rbnext;
while (eb1->rbnext!=null) eb1=eb1->rbnext;
return;
}
int adddlg::init_reg_app()
{
struct resbuf *rbp;
strcpy(local_appname,"test");
if ((rbp = acdbtblsearch("appid", local_appname, 0)) == null)
{
if (acdbregapp(local_appname) != rtnorm)
{
acutprintf("\n不能为<%s>注册xdata.", local_appname);
return rterror;
}
}
else
acutrelrb(rbp);
appname1.resval.rstring=local_appname;
return rtnorm;
}
这里那里有问题,可编译成功,但在cad里运行时,就有操作地址的错误,搞得cad死翘翘啦。高人请指点一二。谢谢!