明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1940|回复: 8

[求助]ARX程序开发中出现的异常处理该如何解决

[复制链接]
发表于 2003-6-17 17:29:00 | 显示全部楼层 |阅读模式
我是ARX的新手,创建一个函数,提示用户选择文件,获取文件中的圆,更改圆的颜色和直径,并将圆放回原文件,编译通过.但在AutoCAD中加载此ARX文件并运行时,提示:未处理的异常 C0000005 (Accecc Violation Reading Ox001c),地址6545F306h.
请高手指教!
发表于 2003-6-18 11:56:00 | 显示全部楼层

能否附上源文件?

发表于 2003-6-19 11:28:00 | 显示全部楼层

原因如下

我原来也遇到了这个问题,一般这种情况主要是因为指针或者数组没有初始化造成的,或者是因为堆栈溢出。仔细检查你定义的指针和数组,给他们都初始化,然后你看看你的数组是不是太大了?改小一点儿。
 楼主| 发表于 2003-6-23 21:46:00 | 显示全部楼层

请多指教

本帖子中包含更多资源

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

x
发表于 2003-6-24 10:51:00 | 显示全部楼层

你的错误,呵呵,让我费了半填劲

看你下面的代码:
for (pWorkSetIter->start(); !pWorkSetIter->done();pWorkSetIter->step());*****这里怎么了?呵呵
                        {
                                AcDbEntity *pEntity;
                                acdbOpenAcDbEntity(pEntity,pWorkSetIter->objectId(),AcDb::kForWrite);
                                pEntity->setColorIndex(colorIndex);
                                ((AcDbCircle *)pEntity)->setRadius(radius);
                                pEntity->close();
                        }
                        delete pWorkSetIter;
 楼主| 发表于 2003-6-24 11:08:00 | 显示全部楼层

谢谢

多谢啦
发表于 2003-6-24 12:21:00 | 显示全部楼层

不客气,欢迎你经常来明经做客。

: )
发表于 2003-6-25 14:56:00 | 显示全部楼层

看了你的源程序,给点编程风格的意见

首先,你的程序写得不错,能实现你想要的功能(除了Z版主说的那个多余的分号外)。但整个程序中没有一句注释代码,大降低了程序的可读性。好的编程习惯是在编写代码的同时,加上必要的一些注释。
另外,你在遍历块表记录的循环中使用这样的代码:
AcDbEntity *pEnt;              //详细语句可能有点小差异
...
pEnt->close();
这样,块表中有多少实体对象,就要建立并析构多少次AcDbEntity对象。若将以上两行代码移到循环外部,并不影响程序的正确性,但它只需要建立和析构一次ADbEntity对象,可能你认为这对程序执行效率影响不大。(实际上,若用户打开的文件有很多AcDbEntity实体对象时,效率将明显降低。)但严重影响你的程序质量,不是吗?
长事务(Z版主建议翻译为“远程处理”,我认为“远程事务”可能更准确,不过这是另外一个话题)循环中也存在同样的问题。
发表于 2003-8-1 10:50:00 | 显示全部楼层
*******************************************
AcDbEntity *pEnt;              //详细语句可能有点小差异
...
pEnt->close();
*******************************************
上面两句不能放到外面,否则就错了,另外,放到外面性能并不能提高,AcDBEntity× pEnt是在栽中分配内存不是堆分配,内存的大小只有4个字节,对性能根本没有影响。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-29 09:38 , Processed in 0.179914 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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