標籤:dal app 需要 return abc ppm 編譯器 tco virt
一、本節課程
Arx二次開發建立第一個應用程式
二、本節要講解的知識點
1、手動建立ARX的應用的步驟。
2、應用嚮導建立ARX應用程式的步驟。
三、
具體內容
1、需求:建立一個Hello World應用程式,在AUTOCAD的命令列輸出“Hello World”。
2、手動建立一個ARX應用程式:C++開發ARX應用程式,實際上我們ARX應用程式就是一個動態連結程式庫,它的尾碼只是沒用.DLL來表示而已,是用.ARX 來表示的。與常規的DLL程式一樣,ARX程式在AUTOCAD調用時載入,與AUTOCAD本身的代碼是相互獨立的。
設定編譯器的參數,包括代碼的產生方式。
設定連接器的參數,包括輸出檔案的名稱,添加連結庫檔案等。
建立一個DLL檔案,引用ARX API的標頭檔和庫檔案,然後設定編譯器參數和連接器參數。將組建檔案的尾碼改為“.DLL”檔案即可。在代碼裡面建立兩個函數分別使用者初始化和卸載ARX程式。 void InitApp(); void UnloadApp();
具體請參見收費課程C++ ARX開發的免費試聽部分。
3、嚮導建立一個ARX應用程式:
(1)ObjectARX應用程式:在AUTOCAD中調用。
(2)ObjectDBX應用程式:在所有的REALDWG宿主程式中調用(包括AUTOCAD),自訂實體開發的時候,可以建立此類程式。
(3)Console程式:高版本的AUTOCAD出現的一種開發方式。(AUTOCAD2013以後出現的一種新的開發方式),將AUTOCAD Console應用程式放置在伺服器端(比如說伺服器端自動列印),特點就是不需要互動,運行速度很快。
4、嚮導自動幫我們產生了一些標頭檔和源檔案。其中acrxEntryPoint.cpp是ARX程式的進入點。
(1)ARX模組載入時執行的函數
virtual AcRx::AppRetCode On_kInitAppMsg (void *pkt) {
AcRx::AppRetCode retCode =AcRxArxApp::On_kInitAppMsg (pkt) ;
//通常需要加入的代碼,在這裡可以放入軟體鎖檢測的代碼。
return (retCode) ;
}
(2)ARX模組卸載時執行的函數
virtual AcRx::AppRetCode On_kUnloadAppMsg (void *pkt) {
AcRx::AppRetCode retCode =AcRxArxApp::On_kUnloadAppMsg (pkt) ;
return (retCode) ;
}
5、此外嚮導還建立了命令的模板,我們可以根據模板來定義自己想要定義的命令:MyCommand。
(1)第一處修改
ACED_ARXCOMMAND_ENTRY_AUTO(CArxProject2App, yunyouMyGroup,CommandABC, CommandABC, ACRX_CMD_MODAL, NULL)
(2)第二處修改
static void yunyouMyGroupCommandABC () {
}
6、在命令中實現一個HelloWorld的列印。
static void yunyouMyGroupCommandABC () { acutPrintf(TEXT("Hello world!"));}
四、
總結
1、手動建立ARX的應用的步驟請參見收費課程的試聽部分。
2、應用嚮導建立ARX應用程式的步驟。
3、如何在ARX中添加命令和命令實現函數。
4、建立第一個應用程式Hello World。
2、Arx二次開發建立第一個應用程式