一、arx的版本問題

marinelei發表於2009-01-17

最近任務需要用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

相關文章