明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1516|回复: 0

请教:关于添加扩展数据

[复制链接]
发表于 2005-11-23 16:31:00 | 显示全部楼层 |阅读模式

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死翘翘啦。高人请指点一二。谢谢!

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 03:57 , Processed in 0.746683 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表