AutoCAD 二次开发之 ObjectARX 环境搭建

AutoCAD2017,VS2015,Win7/Win10

第一步:安装ObjectARX SDK 库

解压 ObjectARX SDK 文件到指定路径:C:\ObjectARX;(避免出错,使用默认路径)

第二步:安装向导程序

  1. 创建注册表:新建一个 txt 文件,复制以下内容:

    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\Msi.Package\shell\runas]
    @="Run as Administrator"
    
    [HKEY_CLASSES_ROOT\Msi.Package\shell\runas\command]
    @="msiexec /i \"%1\""
    

    修改文件名为:MSI添加管理员运行.reg;在这里插入图片描述
    在这里插入图片描述

  2. 双击运行 【MSI添加管理员运行.reg】;

  3. 右击 【ObjectARXWizards.msi】,以管理员身份运行;

第三步:手动创建ARX项目

  1. 创建一个Win32空的dll 项目;

  2. 创建好项目后,向项目中添加以下文件,并编写以下代码:
    stdafx.h

    #pragma once
    #define WIN32_LEAN_AND_MEAN
    
    #include <Windows.h>
    #include "tchar.h"
    

    stdafx.cpp

    #include "stdafx.h"
    
  3. 接着进行项目配置:
    1- [属性]->[配置属性]->[常规]->[目标文件扩展名].dll -> .arx
    2- [属性]->[配置属性]->[C/C++]->[常规]->[附加包含目录](头文件路径)
    3- [属性]->[配置属性]->[C/C++]->[常规]->[代码生成]->[运行库]多线程DLL(/MD)
    4- [属性]->[配置属性]->[链接器]->[常规]->[附加库目录]
    5- [属性]->[配置属性]->[链接器]->[输入]->[附加库依赖]
    图文对照:
    <目标文件扩展名>在这里插入图片描述
    <附加包含目录>
    在这里插入图片描述在这里插入图片描述
    <运行库>
    在这里插入图片描述
    <附加库目录>
    在这里插入图片描述在这里插入图片描述
    <附加库依赖>
    在这里插入图片描述在这里插入图片描述

  4. 创建 HelloARX.cpp文件并添加以下代码:

    #include "stdafx.h"
    
    BOOL APIENTRY DLLMain(HANDLE hModule,
    	DWORD ul_reason_for_call,
    	LPVOID ipReserved)
    {
    	return TRUE;
    }
    

    这是dll的入口;

  5. 创建HelloARX.def模块文件并添加以下代码:

    LIBRARY HelloARX
    DESCRIPTION "First ARX Application."
    
    EXPORTS
    acrxEntryPoint PRIVATE
    acrxGetApiVersion PRIVATE
    
  6. 创建Arx.cpp文件并添加以下代码:

    #include <aced.h>
    #include <rxregsvc.h>
    #include "stdafx.h"
    
    void InitApp();
    void UnloadApp();
    
    void HelloWorld();
    
    void InitApp()
    {
    	acedRegCmds->addCommand(L"HelloArx", L"Hello", L"Hello", ACRX_CMD_MODAL, HelloWorld);
    }
    
    void UnloadApp()
    {
    	acedRegCmds->removeGroup(L"HelloArx");
    }
    
    void HelloWorld()
    {
    	acutPrintf(L"\nHello World!");
    }
    
    extern "C" AcRx::AppRetCode
    acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt){
    	switch (msg)
    	{
    	case AcRx::kInitAppMsg:
    		acrxDynamicLinker->unlockApplication(pkt);
    		acrxRegisterAppMDIAware(pkt);
    		InitApp();
    		break;
    	case AcRx::kUnloadAppMsg:
    		UnloadApp();
    		break;
    	case AcRx::kLoadDwgMsg:
    		break;
    	case AcRx::kUnloadDwgMsg:
    		break;
    	case AcRx::kInvkSubrMsg:
    		break;
    
    	case AcRx::kCfgMsg:
    		break;
    	case AcRx::kEndMsg:
    		break;
    	case AcRx::kQuitMsg:
    		break;
    	case AcRx::kSaveMsg:
    		break;
    	case AcRx::kDependencyMsg:
    		break;
    	case AcRx::kNoDependencyMsg:
    		break;
    
    	case AcRx::kOleUnloadAppMsg:
    		break;
    	case AcRx::kPreQuitMsg:
    		break;
    	case AcRx::kInitDialogMsg:
    		break;
    	case AcRx::kEndDialogMsg:
    		break;
    	case AcRx::kSuspendMsg:
    		break;
    	case AcRx::kInitTabGroupMsg:
    		break;
    	case AcRx::kEndTabGroupMsg:
    		break;
    
    	default:
    		break;
    	}
    	return AcRx::kRetOK;
    }
    

    到这里可以生成HelloARX.arx文件了

第四步:解决无法新建MFC基础类

  1. 找到:C:\Program Files (x86)\Autodesk\ObjectARX 2017 Wizards\ArxWizMFCSupport\HTML\1033 路径下的 default.htm 文件,以记事本的方式打开它;
  2. 找到第332行
    在这里插入图片描述
  3. 代码替换为:
<OBJECT CLASS="itemText" ID="DialogList" ACCESSKEY="d" CLASSID="CLSID:087da97a-e2f4-472a-bb48-0bcdfaa20fb3">

大功告成,右键新建类,选择 ObjectARX 类库时正常!
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值