查看单个帖子
旧 2009-04-18, 08:55 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】请教:关于添加扩展数据

请教:关于添加扩展数据
请教:关于添加扩展数据
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死翘翘啦。高人请指点一二。谢谢!
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)