一、arx的版本問題
最近任務需要用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/TD> | 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相關功能的話,相容性應該還是可以的。原文(作者lzljy)見<http://www.objectarx.net/bbs/archiver/?tid-69.html>
- 使用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
相關文章
- 一個版本問題
- Azure CLI的版本問題
- powershell 版本問題
- channels 版本問題
- rn node 版本問題
- 多版本oracle 軟體的問題Oracle
- 資料泵的跨版本問題
- lombok版本 與 lombok plugins版本問題LombokPlugin
- Homestead Vagrant 版本問題
- 不同版本間 EXP 問題
- cassandra&hector版本問題
- mysql多版本共存問題MySql
- 用筆記來記錄遇到的問題:釋出版本和非釋出版本遇到的問題筆記
- Angular2入坑記(一)之NPM版本問題AngularNPM
- 由一個C++版本猜數字遊戲引起的效率問題C++遊戲
- 版本號比較大小問題
- rabbitmq解決erlang版本問題MQ
- Linux iscsi target版本問題Linux
- zstack IAR版本對應問題 及2430時鐘源的問題
- 神奇解決NoClassDefFoundError版本不同的問題Error
- 使用git修復線上指定版本的問題Git
- 有關jbpm流程例項版本的問題
- Tomcat與Myeclipse的版本一致和8080的埠占用問題TomcatEclipse
- minikube與kubectl版本不一致問題
- Java - java與javac版本不一致問題Java
- 一個非技術問題的問題
- 版本控制常見問題列表——版本控制心得(三) (轉)
- 今天記錄一個小程式使用客服的功能遇到的坑,版本庫問題
- corrupted block的一次處理和古舊版本的PL/SQL Developer問題BloCSQLDeveloper
- 6.7 版本 Cookie 跟 Session 存入問題CookieSession
- Mac 下切換 PHP 版本問題MacPHP
- PHP 開發版本問題處理PHP
- git 解決版本衝突問題Git
- 配置 Homestead 遇到 PHP 版本問題PHP
- angular-resource版本差異問題Angular
- gcc與gdb版本相容問題GC
- pl/sql + client 版本位數問題SQLclient
- 求助關於jre版本問題!!!