查看: 6456|回复: 11
【原创】AutoCAD中的arx文件是如何加载的
[复制链接]
baitang36
baitang36
当前离线
积分41618
明经币 个
注册时间2013-8-16
在线时间 小时
威望
金钱 个
贡献
激情
电梯直达
楼主
发表于 2023-12-7 14:44:53
|
只看该作者
|倒序浏览
|阅读模式
本帖最后由 baitang36 于 2023-12-7 14:46 编辑
一般情况下,用appload或者直接拖拽一个arx文件到绘图区,arx文件就加载成功了。如果用autollisp加载arx文件,用语句(arxload "abc.arx")这个arxload函数是如何实现的呢?从内存中挖出来,它的代码是这样的:00000000: 14 03 01 01 0100000005: 64 0200000007: 05 0100000009: 2900000010: 0d 07 0000000013: 5f 00 2e 30 00 0000000019: 0a00000020: 05 0000000022: 0200000023: 51 01 a9 01 01 00 ;box00000029: 51 02 9c 01 01 00 ;ads-arxload00000035: 08 0200000037: 05 0200000039: 25 0c00000041: 0d 1e 0000000044: 05 0100000046: 0d 04 0000000049: 05 0100000051: 2800000052: 1600000053: 09 b4 02 ;"VLMSG.DLL"00000056: 33 b6 35 00 0000000061: 51 02 b3 02 01 00 ;string-resource00000067: 51 01 e2 02 01 00 ;_msg-err00000073: 1600000074: 05 0200000076: 16可以看出,它调用了一个函数ads-arxload,这是个没有公开的内部保留函数,它是用c++写的。它的代码反汇编一下是这样的:可以看出,ads-arxload这个函数又调用了acedArxLoad这个函数,它是acad.exe定义的继续找acedArxLoad的代码,发现它调用了一个acdb17.dll中的一个函数(版本不同文件名不同在acad2008中是acdb17.dll)?loadModule@AcRxImpDynamicLinker@@UAE_NPB_W_N1@Z它是 public: virtual bool __thiscall AcRxImpDynamicLinker::loadModule(wchar_t const *, bool, bool)结论:arx文件的加载过程是;arxload==>ads-arxload==>acedArxLoad==>?loadModule@AcRxImpDynamicLinker@@UAE_NPB_W_N1@Zarxload和ads-arxload都是在vl.arx中定义的,vl.arx是acad.exe加载的第一个arx程序,那它是怎么加载的?毕竟它在被加载之前无法自己加载自己。跟踪发现,答案是acad.exe直接调用了?loadModule@AcRxImpDynamicLinker@@UAE_NPB_W_N1@Z这个函数。
评分
参与人数 1明经币 +1
金钱 +30
收起
理由
highflybird
+ 1
+ 30
很给力!
查看全部评分
分享到:
QQ好友和群
QQ空间
收藏1
分享
淘帖0
赞0
弹0
回复
使用道具
举报
置顶卡
变色卡
显身卡
baitang36
baitang36
当前离线
积分41618
明经币 个
注册时间2013-8-16
在线时间 小时
威望
金钱 个
贡献
激情
推荐
楼主|
发表于 2023-12-8 11:11:34
|
只看该作者
e2002 发表于 2023-12-8 10:29
https://zhuanlan.zhihu.com/p/670913056
请问楼主,这个账号是你吧?昨天刚好看到。
是的,电子管是我用了20多年的网名
回复
支持
反对
使用道具
举报
显身卡
e2002
e2002
当前离线
积分28611
明经币 个
注册时间2002-2-15
在线时间 小时
威望
金钱 个
贡献
激情
推荐
发表于 2023-12-8 10:29:11
|
只看该作者
https://zhuanlan.zhihu.com/p/670913056
请问楼主,这个账号是你吧?昨天刚好看到。
回复
支持
反对
使用道具
举报
显身卡
wyqzm
wyqzm
当前离线
积分9319
明经币 个
注册时间2005-4-9
在线时间 小时
威望
金钱 个
贡献
激情
推荐
发表于 2023-12-8 08:36:00
|
只看该作者
这只不过是acad自己的规则,然而,这又有何用呢?如何能创新呢?
回复
支持
反对
使用道具
举报
显身卡
不一样地设计
不一样地设计
当前离线
积分9753
明经币 个
注册时间2014-3-23
在线时间 小时
威望
金钱 个
贡献
激情
沙发
发表于 2023-12-7 15:15:04
|
只看该作者
太牛了,感谢分享学习
回复
支持
反对
使用道具
举报
显身卡
loveu515
loveu515
当前离线
积分7375
明经币 个
注册时间2022-6-14
在线时间 小时
威望
金钱 个
贡献
激情
板凳
发表于 2023-12-7 15:49:34
|
只看该作者
专业,感谢分享
回复
支持
反对
使用道具
举报
显身卡
wangsr
wangsr
当前离线
积分8110
明经币 个
注册时间2023-10-23
在线时间 小时
威望
金钱 个
贡献
激情
地板
发表于 2023-12-7 16:02:01
|
只看该作者
谢谢分享经验
回复
支持
反对
使用道具
举报
显身卡
xfjiamy
xfjiamy
当前离线
积分948
明经币 个
注册时间2008-10-13
在线时间 小时
威望
金钱 个
贡献
激情
5#
发表于 2023-12-7 16:10:27
|
只看该作者
太牛了
回复
使用道具
举报
显身卡
qincccken
qincccken
当前离线
积分998
明经币 个
注册时间2004-11-10
在线时间 小时
威望
金钱 个
贡献
激情
6#
发表于 2023-12-7 20:53:40
|
只看该作者
谢谢提供分享学习了
回复
支持
反对
使用道具
举报
显身卡
magicheno
magicheno
当前离线
积分9688
明经币 个
注册时间2019-6-5
在线时间 小时
威望
金钱 个
贡献
激情
7#
发表于 2023-12-8 00:11:31
|
只看该作者
大佬研究的东西太牛了~
回复
支持
反对
使用道具
举报
显身卡
Bao_lai
Bao_lai
当前离线
积分17701
明经币 个
注册时间2016-10-21
在线时间 小时
威望
金钱 个
贡献
激情
8#
发表于 2023-12-8 08:26:38
来自手机
|
只看该作者
不明觉厉!
回复
使用道具
举报
显身卡
szhorse
szhorse
当前离线
积分11177
明经币 个
注册时间2011-6-9
在线时间 小时
威望
金钱 个
贡献
激情
10#
发表于 2023-12-8 10:10:28
|
只看该作者
大佬研究的透彻,期待后续好工具
回复
支持
反对
使用道具
举报
显身卡
还有一些帖子被系统自动隐藏,点此展开