![]() |
【转帖】请教:关于添加扩展数据
请教:关于添加扩展数据
请教:关于添加扩展数据 void adddlg::onaddbutton() { // 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死翘翘啦。高人请指点一二。谢谢! |
| 所有的时间均为北京时间。 现在的时间是 02:46 PM. |