AutoCAD ObjectARX与vc++最佳搭档解析


最近任务需要用arx开发,但版本问题困扰了我很久。在网上找了很多资料,拿出来大家分享。不同版本的AutoCAD的ARX程序不是二进制兼容的,需要使用不同版本的ObjectARX开发包,以及不同版本的编译器。ObjectARX都只能在VisualStudio下编译,其中ARX2006版之前的只能使用C++语言,之后的可以使用C++、VB.net和C#三种语言。

       AutoCAD系列软件,在目前市场上的主要版本有R12、R14、2000、2000i、2002、2004、2005、2006和2007。其中2000、2002、2002i、2004、2005、2006、2007的内部版本号分别是R15、R15.0.6、R15.0.7、R16、R16.1,R16.2、R17从内部版本号可以更清楚的知道这些版本之间的关系。CAD和ObjectARX开发包版本及编译器的对应关系基本如下表所示:



CAD版本                                ObjectARX版本                  VS版本

CAD R12                                ARX 1                          VC 2

CAD R14                                ARX 202                        VC 4.2

CAD2000/2002即R15、R15.0.7             ObjectARX 2002                 VC 6.0

CAD2004 即R16                          ObjectARX 2004                 VC 2002(即7.0)

CAD2005 即R16.1                        ObjectARX 2005                 VC 2003(即7.1)

CAD2006 即R16.2                        ObjectARX 2006                 VS 2003(即7.1)

CAD2007 即R17                          ObjectARX 2007                 VS 2005(即8.0)

   如果不使用到新特性或已废除的特性,那么同样功能的程序,源代码可以不加修改或少量修改,但必须在不同平台使用不同的开发包重新编译,否则要么无法生成,要么虽然勉强生成但无法载入。当然同一主版本号的CAD,低版本的可以在高版本中载入,如2000的ARX程序可以在2002中载入运行,但稳定性不能完全确保。

另外开发环境的对应也有一些说道。

比较经典的组合:ObjectARX 2002 + AutoCAD 2002 + VC6.0 + Assist 6.0 + VSS 6.0C

目前较稳定的组合:ObjectARX 2004/2005 + AutoCAD 2004/2005 + VC.Net 2002

不兼容的组合(一):ObjectARX 2005 + AutoCAD 2004/2005 + VC.Net 2003,需调用或验证大量VC7.0的库,否则编译不过。解决方案:拷贝VC2002安装目录下/VC7\atlmfc\lib下类似*70*的文件到VC2003下,主要有:mfc70.lib、 mfc70d.lib、mfc70u.lib、mfc70ud.lib mfcs70.lib、mfcs70.pdb mfcs70d.lib、mfcs70d.pdb mfcs70u.lib、mfcs70u.pdb、mfcs70ud.lib、mfcs70ud.pdb

不兼容的组合(二):ObjectARX 2006 + AutoCAD 2006 + VC.Net 2003 + Assist X + VSS 6.0D 同样需要VC7.0的库,简要方法:(1) 复制VC2003的相关库文件如:mfc71.lib、mfcs71.lib并改名为类似*70*的文件如: mfc70.lib、mfcs70.lib;(2) 拷贝VC2002的相关库文件到VC2003的对应安装目录下。:可以解决!采用改名的方法,编译通过,加载时不要用appload(命令行) or "load application"(英文版菜单)
or “加载应用程序”(中文版菜单),而在命令行输入"ARX", 接下来输入“Load”进行arx文件加载(忽略警告),在VC7.1+Autodesk Mechanical Desktop 2006(基于AutoCAD 2006)平台上实验成功,如果避免使用MFC相关功能的话,兼容性应该还是可以的。

使用C#的组合:ObjectARX 2006 + AutoCAD 2006 + V#.Net 2003。.Net ARX编程组合。编译的程序文件名为.dll,在AutoCAD中的加载命令为:NetLoad,但没有?载命令,只有关闭AutoCAD。调用ARX函数时using 相关命名空间,类似VC里include头文件。

最新的组合:ObjectARX 2007 + AutoCAD 2007 + VC.Net 2005 +Visual Assist v10.2.1442.0 + Visual SourceSafe 2005

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空