找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 578|回复: 9

[ARX程序]:ARX和DBX之间怎样完成类的共享,就象EXE文件共享DLL中的资源一样

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

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

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

×
ARX和DBX之间怎样完成类的共享,就象EXE文件共享DLL中的资源一样,谢谢了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-11-9 10:03:22 | 显示全部楼层
dbx本身是动态连接库,跟dll一样
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2003-11-10 22:01:59 | 显示全部楼层
最初由 lilin810212 发布
[B]你错了。不信,你试一试 [/B]

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

使用道具 举报

 楼主| 发表于 2003-11-11 11:57:40 | 显示全部楼层
不是的,我啃了几天英文,发现,DBX和DBX有很多的区别:其中最重要的一点是DBX只能在CAD中调用。
在你真正的使用一个DBX的一个类时,需按以下步骤做:
1、在使用DBX时,你必须把你要用的类的头文件插入。
2、然后你必须把编译后的类所在的LIB文件插入(否则编译时通不过,但是运行时不需要)
3、保证DBX在系统目录或者当前的目录下。
4、这样,你才能真正的在一个ARX文件中运行另一个DBX中的类。
////////////////////////////////////////////////////////////////////////////
//
这是我这几天的看书所得,不知还有没有更简单的方法,希望具体的告知一下,本人不胜感激。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-11-12 10:26:58 | 显示全部楼层
各位可知如何利用DBX编程,我理解用DBX编的程序可脱离AutoCAD环境运行!

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

使用道具 举报

发表于 2003-11-12 11:53:35 | 显示全部楼层
最初由 cutechun 发布
[B]各位可知如何利用DBX编程,我理解用DBX编的程序可脱离AutoCAD环境运行!

不知是否对啊? [/B]

如果在DBX中不使用ACAD.EXE输出的函数就可以脱离AutoCAD环境运行.简单的测试方法就是(一种即可):
1、用Depends(VC自带工具)看一下人没人引用ACAD.EXE
2、链接时去掉acad.lib能链接成功

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

使用道具 举报

发表于 2003-11-12 14:39:36 | 显示全部楼层
可爱的斑主,能不能发个可用的代码给我,我对于DBX真的不懂,如果其独立于ACAD环境,那么它是个什么呢?EXE?

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

使用道具 举报

发表于 2003-11-12 20:25:21 | 显示全部楼层
最初由 cutechun 发布
[B]可爱的斑主,能不能发个可用的代码给我,我对于DBX真的不懂,如果其独立于ACAD环境,那么它是个什么呢?EXE?

ipdw@hotmail.com
QQ:2338259 [/B]

在开始之前先多说两句:
1、在Win32 中PE(可以简单理解为可以运行的Win32程序)只有两类EXE和DLL,非此即彼(DOS中的.COM不在此列)。扩展名叫什么不重要,.ARX或.DBX都无所谓。不过只有.EXE可以在Win32中直接运行。
2、EXE和DLL都可以输出函数,通过VC++可输出类(不展开说明机制了)
3、EXE和DLL可以互相引用对方输出的函数或类

然后言归正传,
1、由于DBX可执行(在DBX中写的代码你能看在ACAD环境中执行)并且DBX不可直接运行(不信可以将扩展名改为.EXE看看),所以DBX是DLL
2、通过DBX能自定义ACAD实体,但是否能脱离ACAD呢?答案是肯定的!AutoDESK为了能让你自己定义的实体脱离ACAD.EXE,所以将你可能用到自定义实体的函数/类都从ACAD.EXE中剥离出来了。用其Wizard生成的DBX工程都没有加上ACAD.LIB,只要你不有意在程序中使用ACAD.EXE输出的函数,此DBX(DLL)就和ACAD.EXE无关。
3、一个和ACAD.EXE无关的DLL,你什么时候用它不行?!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-11-12 21:30:28 | 显示全部楼层
谢谢各位的关心。
九楼:masterhe [] 说得不错。
但是,下面的几个问题,我还是要问一下:
1、在DBX中定义的类如果不涉及到CAD数据库的类的结构和访问时,那么,它就是一个简单的DLL,但是如果在DBX中存在上面的问题呢?
2、还有在DBX中的类从AcDbObject 基类极其派生类中继承的时候,是不是还可以在其他的的EXE中可用呢?
3、涉及到图形数据库格式(CAD)时,我本人觉得还是不可以吧。
4、在CAD中,还有一点是十分重要的:被调用的DBX是先于调用的DBX或者ARX加载的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 08:02 , Processed in 0.207782 second(s), 50 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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