找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 745|回复: 3

[求助]:看看我这段程序

[复制链接]
发表于 2003-8-6 21:16:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
下面这段程序编译通过,但在CAD运行时出错,显示“Unhandled Excepton c0000005(Access Violation Writing 0x78656e24)at Address 7800DDD3H",请各位帮忙解决,先谢谢了。

void f()
{
        acedCommand(RTSTR,"layer",RTSTR,"m",RTSTR,"ASSIST",RTSTR,"",0);
        acedCommand(RTSTR,"layer",RTSTR,"m",RTSTR,"JMD",RTSTR,"",0);
        acedCommand(RTSTR,"linetype",RTSTR,"s",RTSTR,"continuous",RTSTR,"",0);
        acedCommand(RTSTR,"plinewid",RTSTR,"0",0);
        struct resbuf *eb1=NULL,*eb2=NULL;
        int rc;
        ads_point p1,p2,p3,p4,p5;
        ads_name ent;
        acedGetPoint(NULL,"\n第一点",p1);
        acedGetPoint(p1,"\n第二点",p2);
        acedCommand(RTSTR,"linetype",RTSTR,"s",RTSTR,"X5",RTSTR,"",0);
        acedCommand(RTSTR,"Line",RTPOINT,p1,RTPOINT,p2,RTSTR,"",0);
        acedGetPoint(NULL,"\n对面一点",p3);
        rc=acedGetPoint(NULL,"\n对面另一点(回车默认两边平行)",p4);

        if(rc==RTNORM)
        {
                acedCommand(RTSTR,"Line",RTPOINT,p1,RTPOINT,p2,RTSTR,"",0);
                acedCommand(RTSTR,"Line",RTPOINT,p3,RTPOINT,p4,RTSTR,"",0);
            acedCommand(RTSTR,"linetype",RTSTR,"s",RTSTR,"continuous",RTSTR,"",0);
                acedCommand(RTSTR,"Line",RTPOINT,p1,RTPOINT,p3,RTSTR,"",0);
                acedCommand(RTSTR,"Line",RTPOINT,p2,RTPOINT,p4,RTSTR,"",0);
        }
        if(rc==RTNONE)
        {
                acedCommand(RTSTR,"offset",RTSTR,"t",RTPOINT,p2,RTPOINT,p3,RTSTR,"",0);
                acdbEntLast(ent);
                eb1=acdbEntGet(ent);
                for(eb2=eb1;eb2!=NULL;eb1=eb2->rbnext)
                {
                        if(eb2->restype==0)
                                if(strcmp(eb2->resval.rstring,"LINE")!=0)
                   acutRelRb(eb1);
                        if(eb2->restype==10)
                                ads_point_set(eb2->resval.rpoint,p4);
                        if(eb2->restype==11)
                                ads_point_set(eb2->resval.rpoint,p5);
                        acutRelRb(eb1);
                }
               
                acedCommand(RTSTR,"linetype",RTSTR,"s",RTSTR,"continuous",RTSTR,"",0);
                acedCommand(RTSTR,"Line",RTPOINT,p1,RTPOINT,p5,RTSTR,"",0);
                acedCommand(RTSTR,"Line",RTPOINT,p2,RTPOINT,p4,RTSTR,"",0);
        }
        acedCommand(RTSTR,"layer",RTSTR,"s",RTSTR,"0",RTSTR,"",0);
}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-8-6 21:27:15 | 显示全部楼层

Re: [求助]:[求助]:紧急求助:看看我这段程序

最初由 lihongyu2467 发布
[B]下面这段程序编译通过,但在CAD运行时出错,显示“Unhandled Excepton c0000005(Access Violation Writing 0x78656e24)at Address 7800DDD3H",请各位帮忙解决,先谢谢了。

void f()
{
        acedCommand(RTSTR,"laye... [/B]



程序不能运行,还是运行到哪个地方出错?看到你上面有交互。

另外,既然使用ARX,不推荐你用命令的方法去做,ARX对象方法做这些很容易的,而且效率要更高。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-8-6 21:39:51 | 显示全部楼层
不好意思,初学ARX,完完全全用对象实现感到很困难。
运行到下面时出错:
for(eb2=eb1;eb2!=NULL;eb1=eb2->rbnext)
{
if(eb2->restype==0)
if(strcmp(eb2->resval.rstring,"LINE")!=0)
acutRelRb(eb1);
if(eb2->restype==10)
ads_point_set(eb2->resval.rpoint,p4);
if(eb2->restype==11)
ads_point_set(eb2->resval.rpoint,p5);
acutRelRb(eb1);
}

估计上面代码有问题,但我看不出来。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 192个

财富等级: 日进斗金

发表于 2003-8-7 20:23:36 | 显示全部楼层
你把acutRelRb(eb1);都去了
在for 外加上
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-21 02:44 , Processed in 0.303958 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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