找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 379|回复: 3

[ARX程序]:ARX类设计与DLL设计调用的问题

[复制链接]
发表于 2005-4-6 20:54:47 | 显示全部楼层 |阅读模式

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

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

×
我毕业论文设计一个ARX设计系统。我的设计思路是想做一个ARX,然后相应的做几个DLL,供调用。现在有一些困惑,想与大家讨论讨论,

1。我设计了直线、圆、图块等类,会不会影响CAD的内存,造成内存泄漏?比如说,直线类中定义了直线的起点、终点坐标,图层、线型等等值。还有画线函数。我测试过,建立这样一个类,实例对象时,要申请内存空间,是否是向ACAD申请的?个人感觉,是不是直接将画线、圆,读写图块直接做成函数,封装在DLL,更可靠一些?

2、我将dockbar做成了一个输出DLL,供调用,发现,如果在DOCKBAR上建一个按钮,调用读图时候(pDb->readDwg("c:\\1.dwg")),居然读图错误,是否这样不值得?

3、当我的dockbar出现在CAD上的时候,如果我关掉CAD,CAD会响一下,也没有任何错误提示。但如果我卸掉调用此dockbar的ARX后关掉CAD,却没有声响。讨论一下,究竟是什么样的问题,是否内存释放的时候,CAD有问题?

5、因为设计系统时,避免不了访问外部数据库,我想利用ADO,所以将ADO封装成了一个类,但是发现频繁的访问外部数据库,CAD会崩溃,这样也有不当??

4、我建立DLL的初衷是为了避免ARX文件过大,想按照EXE的模式来设计ARX,但调试中发现,这样反而有更多的问题,是否设计DLL无必要??

也欢迎各位讨论这个问题,可能在设计比较大一点的ARX程序时,都会碰倒这样的问题,希望大家能集思广益,多提看法
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-4-25 09:48:44 | 显示全部楼层
这种设计的确比较麻烦,但只要控制好,应该问题不大
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-25 10:16:53 | 显示全部楼层
你可以测试你认为有内存泄露的代码,具体方法为循环调用那些类,100000次吧,打开任务管理器,看看内存是不是不断在长,如果内存数比较稳定,那就ok了。调用ado,cad当,肯定是内存访问错误。你的思路没问题,大点的工程需要多人开发,必须做多个dll,否则就成一个人开发了。一般我做arx,主shell是arx,其他全是dll,一般10个dll左右。这样管理,开发都好办,还可重用。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-25 22:06:39 | 显示全部楼层
调用DLL之前要什么额外的工作呢?资源管理什么地?
特别是如果在DLL中有自己的对话框之类的资源的话
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 14:59 , Processed in 0.190817 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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