[原創]ObjectARX開發環境搭建之VS2010+ObjectARX2012Wizard+Addin工具條問題修復


目前ObjectARX版本越來越高,也越來越簡化開發,如果需要同時開發低版本和高版本的ARX程序,就需要搭建批量編譯環境,以滿足ARX開發的需要。

批量編譯的搭建網絡上已經有了很多的教程,基本上都是基於vs2010+arx2012wizard,原因是arx2012的wizard有addin工具條,而高版本不再有此功能,對於新手來說,這是很不方便的。可是arx2012的wizard存在一些未修改的錯誤,導致addin工具條有的無法使用,甚至會引起vs2010的崩潰。經過我的研究發現了問題的所在,原本在QQ群的群問問已經發表了這個解決的帖子,但是QQ群新版更新后取消了這個應用,為了避免后面的人繼續走這個彎路,特發此文。

ARX二次開發對vs的版本和arx的版本對應,具體的可以查看我的博文: https://www.cnblogs.com/edata/p/10802746.html

我建議新手選擇vs2010+arx2012wizard進行初步開發,因為這個版本的wizard向導工具擁有工具條的的功能,而有的教程和書籍都使用了工具條來進行開發,所以工具條可以讓新手更方便快捷的學習arx基礎,(ps:高版本只要arx和vs對應,基本上配置更簡單,幾乎用向導生成就能開始開發了)。

如果代碼寫好了,就可以直接向上升級到最新版本,向下降級編譯到cad2004,代碼改動比較小。cad2000~2002 的sdk不一樣不能直接使用,需要修改才能實現。套用一句古語:上可九天攬月,下可五洋捉鱉,所以用vs2010+wizard2012是非常不錯的選擇。

首先我們需要獲得這個幾個軟件:vs2010 +sp1,objectARX2012 wizard,objectarx各個版本.vC助手,這些均可百度得到。

vs2010和vc助手安裝也比較簡單,都能百度得到,不再詳細介紹。

objectarx各個版本的sdk基本上就是一個自解壓包,這個需要對應你需要開發的版本。我們這里建議先安裝arx2013 sdk或2014sdk, 使用autocad2013或者2014。(cad2010~2012也可以)

下載wizard2012 http://www.cnblogs.com/Yself/p/4765382.html 

objectARX2012wizard模板向導,這個是msi文件,如果系統是win7或者win8之類的系統,都需要管理員權限才能安裝到位,否則會導致安裝的向導不可用,具體的解決方式,可以參考:http://www.cnblogs.com/edata/p/6796025.html ,雖然此文說的是2015的向導,實際上2012的也是一樣的要求和方法。

 objectARX2012wizard要求.net3.5環境,安裝之前最好確認這個是否已經安裝完成,一般你安裝cad2012的時候會自動安裝這個.net3.5.

如果是win7/win8 win10一定要用管理員模式安裝,安裝這個wizard幾乎是一路next,就行。

安裝完成后,我們需要先對這個wizard修復。

首先修復Addin工具條的圖標,這個由於缺少中文資源文件引起的。

32系統打開路徑 C:\Program Files\Autodesk\ObjectARX Wizards for AutoCAD 2012\ArxAddInWiz2010

win7或win8 win10 64位系統打開路徑 C:\Program Files (x86)\Autodesk\ObjectARX Wizards for AutoCAD 2012\ArxAddInWiz2010

下載zh-chs中文資源文件夾. 點擊下載zh-chs

 解壓到上面的目錄即可。

 

完成后重新啟動vs:就有了這個圖標。

下面繼續改造:打開

C:\Program Files (x86)\Autodesk\ObjectARX Wizards for AutoCAD 2012\ArxWizMFCSupport\HTML\1033

C:\Program Files\Autodesk\ObjectARX Wizards for AutoCAD 2012\ArxWizMFCSupport\HTML\1033

右鍵打開default.htm文件並查找classid將CLASSID="CLSID:5A0C78A8-07D8-48cd-B1DD-BA9752C79F1C">

換成CLASSID="CLSID:19db9a07-5ca3-461e-9e7b-b370c91aba2e">

 

 保存文件,如果是win8 win10 可能要先保存到桌面或者其他位置,再復制回去覆蓋(后面保存均相同)。

同理我們繼續打開

C:\Program Files\Autodesk\ObjectARX Wizards for AutoCAD 2012\ArxMemVariableWiz\HTML\1033

或C:\Program Files (x86)\Autodesk\ObjectARX Wizards for AutoCAD 2012\ArxMemVariableWiz\HTML\1033

右鍵打開default.htm文件並查找classid將CLASSID="CLSID:5A0C78A8-07D8-48cd-B1DD-BA9752C79F1C">

換成CLASSID="CLSID:19db9a07-5ca3-461e-9e7b-b370c91aba2e">

保存。。

繼續打開

C:\Program Files\Autodesk\ObjectARX Wizards for AutoCAD 2012\ArxAppWiz\Scripts\1033

或者C:\Program Files (x86)\Autodesk\ObjectARX Wizards for AutoCAD 2012\ArxAppWiz\Scripts\1033

右鍵打開default.js

查找到ManagedExtensions 默認在122行或者123行.將后面的值修改成 bDotNetModule ? managedAssembly: managedNotSet ;

下面是完整例子(這個是修復arx勾選net的錯誤修正方式):

config.ManagedExtensions =bDotNetModule ? managedAssembly: managedNotSet ;

 

 修改一下默認輸出路徑的多的一個斜杠

查找OutputFile 大概在168行

取消$(outdir)/的這個斜杠

參見圖

 

按Ctrl+End鍵盤鼠標拖動到最下方

最最后一行開始倒數第三行,找到var szPath ="c:\\Program Files\\Autodesk\\AutoCAD 2011\\" ;這類似這句

將這個地址改成你的cad安裝目錄如 "D:\\Program Files\\Autodesk\\AutoCAD 2013\\" 注意路徑的雙斜線。

保存。。

 

 

 

--------------------------------------------------

更新修正 MIDL1012 錯誤 2019-07-26

修復新建COM服務器的ATL支持項目(OPM)的錯誤,

 midl : command line error MIDL1012: argument illegal for switch / header

修改為

這樣新建的帶有MIDL項目就不會提示錯誤這個錯誤了.

打開C:\Program Files (x86)\Autodesk\ObjectARX Wizards for AutoCAD 2012\ArxWizMFCSupport\Templates\1033目錄下的

DockControlBar.h DockControlBar.cpp

修改 Create函數的第二個參數類型為 LPCTSTR,可以將Create成員函數聲明放在 public下(可選)。

如果不放在public下,在類外不能使用這個create,如果不打算改寫其他方式調用create,就改在public下。

 

 

 

 

 

完成后我們用vs2010開始新建項目。

 

 

 

 

啟動成功后會自動加載arx,無需再用ap加載。直接在命令行輸入hello就能執行這句hello arx 2013!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM