【Objectarx】关于ARX自动加载失败,手动加载成功的问题调查

在前段时间的ARX的改造过程中遇到一个ARX无论是放在.rx文件的什么位置都无法自动加载成功,但是在CAD打开之后,手动加载就能成功。
当时一直认为ARX既然能够手动加载成功应该就是没有问题,问题应该是出在加载上;然后反反复复查了这个ARX链接的所有的DLL都没有问题。今天一个朋友给了建议,说应该查查ARX的入口函数,才重新把调查的重心回到ARX本身。
在这个ARX的入口函数调用了系统初始化的接口,一路把下去,大概在经过了三四层的C++的工程之后,最后一个DLL中调用了一个C#的DLL;而这个C#的DLL的加载是写在.lsp文件中。查到这里我大概明白为什么手动加载能够成功了。CAD启动之后应该是先加载了.rx文件,后加载.lsp文件,所以自动加载的时候因为C#的DLL没有加载,导致了ARX无法加载成功;等到CAD完全启动之后C#的DLL也加载完毕了,所以手动加载ARX就能够成功。
最后的修改方案是在.lsp文件的最后通过arxload加载ARX文件成功结果这个问题:
(arxload “xxxx.ARX”)
另外,在参考arxload的时候还看到了另一个可以在.lsp文件中加载ARX的命令"autoarxload",它比"arxload"多了一个功能,就是需要指定命令进行声明:
(autoarxload “xxxx.ARX” '(“命令1” “命令2” “命令3”))
只是在使用autoarxload进行测试的时候,ARX加载成功了,但后面声明的命令以及没有声明的命令都可以使用,感觉和arxload没有区别,就不清楚这个声明的意思是什么了。
另外,在ZWCAD中使用autoarxload进行ZRX加载的时候,加载失败了,甚至ZRX的入口函数都没有进去,不知道是不是不支持autoarxload进行ZRX加载;不过在ZWCAD中arxload加载ZRX也是没有问题的。
参考:
arxload
autoarxload

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值