这里以Visual Studio 2010(以下简称VS)+AutoCAD 2012(以下简称ACAD)为例,高版本的AutoCAD 可参考操作。

准备工作

首先,你得准备如下软件和开发包:VS 和ACAD(这不是废话嘛),然后是ObjectARX SDK 2012。
下面是详细的配置过程。

  1. 新建一个Win32 项目,并给项目一个名称,这里我们使用“ArxHello”作为项目名称,然后确定。
  1. 在接下来的应用程序向导下,在第一页中直接点击“下一步”,到第二个页面时,按下图的配置,应用程序类型中选择“DLL(D)”,附加选项中选择“空项目(E)”,然后点击“完成”
  1. 现在,你已经创建了一个空项目,接下来配置该项目。选择菜单中“项目”下的“XX 属性”:

在弹出的窗口中配置。

先选择“配置属性”下的“常规”,然后在右边的表格中,将“目标文件扩
展名”项的值从“.dll”改为“.arx”。

然后在“VC++目录”下选择“库目录”,点击右边的文本框,点击出现的“编辑”之后,弹出对话框,选择ObjectARX 2012 SDK 下的“lib-win32”目录,如下图。

接下来,点击左边树形结构下的“C/C++”,在右边的“附加包含目录”栏中点击那个向下的小三角形,点击“编辑”,弹出“附加包含目录”,点击那个文件夹图标,在下面的文本框中会出现一个按钮,点击该按钮,浏览到你所安装的
ObjectARX 2012 SDK 目录下的“inc”文件夹,添加,同样的操作再添加“inc-win32”(如果是64 位版本则选择inc-x64)。

添加完成之后效果如下图,具体位置取决于你放置ObjectARX SDK 的目录。

  1. 点击“C/C++”下的“代码生成”,将右边的“运行库”修改为“多线程DLL(/MD)”。
  1. 点击“链接器”下的“输入”,然后在右边点击“附加依赖项”选项下的“编辑”,在弹出的附加依赖项窗口中填入如下几个库文件:

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

02-11 15:44