這里以Visual Studio 2010(以下簡稱VS)+AutoCAD 2012(以下簡稱ACAD)為例,高版本的AutoCAD 可參考操作。
准備工作
首先,你得准備如下軟件和開發包:VS 和ACAD(這不是廢話嘛),然后是ObjectARX SDK 2012。
下面是詳細的配置過程。
- 新建一個Win32 項目,並給項目一個名稱,這里我們使用“ArxHello”作為項目名稱,然后確定。

- 在接下來的應用程序向導下,在第一頁中直接點擊“下一步”,到第二個頁面時,按下圖的配置,應用程序類型中選擇“DLL(D)”,附加選項中選擇“空項目(E)”,然后點擊“完成”

- 現在,你已經創建了一個空項目,接下來配置該項目。選擇菜單中“項目”下的“XX 屬性”:

在彈出的窗口中配置。
先選擇“配置屬性”下的“常規”,然后在右邊的表格中,將“目標文件擴
展名”項的值從“.dll”改為“.arx”。

然后在“VC++目錄”下選擇“庫目錄”,點擊右邊的文本框,點擊出現的“編輯”之后,彈出對話框,選擇ObjectARX 2012 SDK 下的“lib-win32”目錄,如下圖。

接下來,點擊左邊樹形結構下的“C/C++”,在右邊的“附加包含目錄”欄中點擊那個向下的小三角形,點擊“編輯”,彈出“附加包含目錄”,點擊那個文件夾圖標,在下面的文本框中會出現一個按鈕,點擊該按鈕,瀏覽到你所安裝的
ObjectARX 2012 SDK 目錄下的“inc”文件夾,添加,同樣的操作再添加“inc-win32”(如果是64 位版本則選擇inc-x64)。

添加完成之后效果如下圖,具體位置取決於你放置ObjectARX SDK 的目錄。

- 點擊“C/C++”下的“代碼生成”,將右邊的“運行庫”修改為“多線程DLL(/MD)”。

- 點擊“鏈接器”下的“輸入”,然后在右邊點擊“附加依賴項”選項下的“編輯”,在彈出的附加依賴項窗口中填入如下幾個庫文件:
rxapi.lib
acdb18.lib
acge18.lib
acad.lib
然后確定。

點擊最下方的確定,所有的配置都得以完成。下面的工作與環境配置無關,用於測試是否配置成功。
在項目中添加兩個文件。在“解決方案資源管理器”下的“源文件”上單擊右鍵,在彈出的菜單中選擇“添加”,然后選擇“新建項”,如下圖。

在彈出的對話框中選擇“模塊定義文件(.def)”,然后輸入名稱,最好是和項目名稱保持一致,然后點擊“添加”,完成定義文件的添加。

采用同樣的操作,再添加一個C++文件(.cpp),添加完成之后,解決方案資源管理器下應該是下圖這樣的:

在ArxHello.cpp 中輸入如下代碼:
#include <rxregsvc.h>
#include <aced.h>
void initApp();
void UnloadApp();
void Hello();
void initApp()
{
acedRegCmds->addCommand(
L"Hello_Command",
L"HELLO",
L"您好",
ACRX_CMD_TRANSPARENT,
Hello);
}
void unloadApp()
{
acedRegCmds->removeGroup(L"Hello_Command");
}
void Hello()
{
acutPrintf(L"\nHello,ObjectArx.\n");
}
extern "C" AcRx::AppRetCode acrxEntryPoint(AcRx::AppMsgCode msg,void*
pkt)
{
switch (msg)
{
case AcRx::kInitAppMsg:
acrxDynamicLinker->unlockApplication(pkt);
acrxDynamicLinker->registerAppMDIAware(pkt);
initApp();
break;
case AcRx::kUnloadAppMsg:
unloadApp();
break;
}
return AcRx::kRetOK;
}
在ArxHello.def 文件中輸入如下內容:
LIBRARY ArxHello
EXPORTS
acrxEntryPoint PRIVATE
acrxGetApiVersion PRIVATE
然后按F6,編譯程序,如果運氣比較好的話,編譯成功。
最后打開AutoCAD,然后使用命令“ARX”再使用“L”加載所編譯的arx

