明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1597|回复: 0

各位大哥,斑竹!救救我的毕业设计!!!

[复制链接]
发表于 2004-5-17 14:46:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2004-5-18 17:13:23 编辑

这是我在ARX下编的程序,目的是在AutoCAD中由用户选择明细栏对角上的两点,然后显示出明细栏中的文本。但是,编译无误后,在ARX中运行,选择完两个点后,便弹出对话框:未处理的异常c000005(Access violation reading 0xf28abd),地址:77FCB84DH。 这到底是怎么回事?各位,这是我的毕业设计,过几天就要交差了。我很认真的改了几天,但是还是不行。事关毕业,请帮帮忙看看,给点意见!!!我刚才试了一下。程序运行到第一个acedlength()就停止了. 经过测试,程序到了acutPrintf(tent1),便出错,而且会导致CAD自动关机 大家,帮帮忙啊!斑竹,帮帮忙!麻烦大家了 struct resbuf *entitem(struct resbuf *rchain,int gcode) {
while((rchain!=NULL)&&(rchain->restype!=gcode))
rchain=rchain->rbnext;
return rchain;
} void skyextraextra()
{
// TODO: Implement the command
ads_point pt1,pt2,ori,ter,insert;
ads_name s1,set,s2;
struct resbuf eb1,eb2,*list1,*tent1,*list2,*tent2;
char sbuf1[101],sbuf2[10];
long num1,num2,m;
double y[100],x[100],*a,*b,n;
int tx,ty,i,k,N,p1,p2,d,stat;
if((stat=acedGetPoint(NULL,"please pick up the first point\n",pt1))!=RTNORM)//
acutPrintf("failed in picking the first point\n");
if((stat=acedGetPoint(NULL,"please pick up the second point\n",pt2))!=RTNORM)//
acutPrintf("failed in picking the second point\n");
eb1.restype=0;
strcpy(sbuf1,"LINE");
eb1.resval.rstring=sbuf1;
eb1.rbnext=NULL;
acedSSGet("w",pt1,pt2,&eb1,s1);
if(acedSSLength(s1,&num1)!=RTNORM)
return ;
a=x;
b=y;
for(m=0;m<num1-1;m++)
{
if(acedSSName(s1,m,set)!=RTNORM)
return ;
list1=acdbEntGet(set);
tent1=entitem(list1,10);
ori[X]=tent1->resval.rpoint[X];
ori[Y]=tent1->resval.rpoint[Y];
tent1=entitem(list1,11);
ter[X]=tent1->resval.rpoint[X];
ter[Y]=tent1->resval.rpoint[Y];
if(ori[X]=ter[X])
{
*a=ori[X];
a++;
tx++;
}
else
{
*b=ori[Y];
b++;
ty++;
}
}
acutRelRb(list1);
acutRelRb(tent1);
acedSSFree(s1);
for(i=0;i<tx-1;i++)

for(k=0;k<tx-1;k++)

if(x<x[k])
{
n=x[k];
x=n;
x[k]=x;
}

for(i=0;i<ty-1;i++)

for(k=0;k<ty-1;k++)

if(y<y[k])
{
n=y[k];
y=n;
y[k]=y;
}
N=(tx-1)*(ty-1);
char s[100][10];
char w[10];
eb2.restype=0;
strcpy(sbuf2,"TEXT");
eb2.resval.rstring=sbuf1;
eb2.rbnext=NULL;
acedSSGet("w",pt1,pt2,&eb2,s2);
if(acedSSLength(s2,&num2)!=RTNORM)
return ; for(m=0;m<num2-1;m++)
{
if(acedSSName(s2,m,set)!=RTNORM)
return ;
list2=acdbEntGet(set);
tent2=entitem(list2,1);
strcpy(w,tent2->resval.rstring);
tent2=entitem(list2,10);
insert[X]=tent2->resval.rpoint[X];
insert[Y]=tent2->resval.rpoint[Y];
for(i=0;i<tx-1;i++)
{
if((x<insert[X])&&(x[i+1]>=insert[X]))
p1=i;
break;
}
for(i=0;i<ty-1;i++)
{
if((y<insert[Y])&&(y[i+1]>=insert[Y]))
p2=i;
break;
}
d=(tx-1)*p2+p1;
strcpy(s[d],w);
acutRelRb(list2);
acutRelRb(tent2);
acedSSFree(s2);
}
for(i=0;i<tx-1;i++) {
acutPrintf("%s ",s);
if(i%(ty-1)==0)
acutPrintf("/n");
}
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 05:46 , Processed in 0.152682 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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