找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1022|回复: 7

[讨论]:EXE如何调用ARX中的导出函数

[复制链接]
发表于 2006-7-21 08:57:44 | 显示全部楼层 |阅读模式

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

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

×
AutoCAD 加载了一个ARX(DLL),此DLL有一个导出函数形如:void Fun();

我要在另一个EXE中调用它,请问怎么办啊?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-7-22 08:28:39 | 显示全部楼层
include 头文件,
link lib文件
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-22 16:08:28 | 显示全部楼层
好像不对吧,对于一般的Dll文件可以那样,但对于ARX可不行,希望这方面有研究的朋友讲一讲如何实现。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2006-7-27 20:31:44 | 显示全部楼层
arx是dll,但arx能否在cad未运行的时候调入系统
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-7-29 13:01:31 | 显示全部楼层
ARX一般有固定的(即使你没用它)几个函数从acad.exe导入,所以从其他EXE中无法加载此ARX文件,因为系统加载器无法定位导入函数的入口点。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-29 13:06:53 | 显示全部楼层
最初由 Hellow 发布
[B]ARX一般有固定的(即使你没用它)几个函数从acad.exe导入,所以从其他EXE中无法加载此ARX文件,因为系统加载器无法定位导入函数的入口点。 [/B]


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

使用道具 举报

发表于 2006-7-31 00:46:29 | 显示全部楼层
最初由 Hellow 发布
[B]ARX一般有固定的(即使你没用它)几个函数从acad.exe导入,所以从其他EXE中无法加载此ARX文件,因为系统加载器无法定位导入函数的入口点。 [/B]


arx本质上就是dll,任何windows应用程序都可以加载它,但能不能使用它的函数是另一回事情,因为arx的函数大部分是跟AutoCAD相关的,不单要调用autodesk的其它dll,还要调用acad.exe,这在acad.exe未启动时是做不到也是毫无意义的.
autocad根据arx所提供的回调函数(entrypoint,也就是cad入口)初始化应用程序,进行诸如注册命令和类之类的操作,而其它的非cad应用程序显然不会也没有条件调用这个函数.
arx加载的机制,在隐式加载一个arx时(比如你加载了一个引用其它当前cad未加载的arx)的情况下很明了,这时这个被引用的arx只是作为dll被系统加载,而不被cad初始化,所以dllmain被调用了,而entrypoint不会被调用,有兴趣可以试试看.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-23 16:15 , Processed in 0.414631 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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