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;AutoCAD 二次开发之 ObjectARX 环境搭建_第1张图片
    在这里插入图片描述

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

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

第三步:手动创建ARX项目

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

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

    #pragma once
    #define WIN32_LEAN_AND_MEAN
    
    #include 
    #include "tchar.h"
    

    stdafx.cpp

    #include "stdafx.h"
    
  3. 接着进行项目配置:
    1- [属性]->[配置属性]->[常规]->[目标文件扩展名].dll -> .arx
    2- [属性]->[配置属性]->[C/C++]->[常规]->[附加包含目录](头文件路径)
    3- [属性]->[配置属性]->[C/C++]->[常规]->[代码生成]->[运行库]多线程DLL(/MD)
    4- [属性]->[配置属性]->[链接器]->[常规]->[附加库目录]
    5- [属性]->[配置属性]->[链接器]->[输入]->[附加库依赖]
    图文对照:
    <目标文件扩展名>AutoCAD 二次开发之 ObjectARX 环境搭建_第2张图片
    <附加包含目录>
    AutoCAD 二次开发之 ObjectARX 环境搭建_第3张图片AutoCAD 二次开发之 ObjectARX 环境搭建_第4张图片
    <运行库>
    AutoCAD 二次开发之 ObjectARX 环境搭建_第5张图片
    <附加库目录>
    AutoCAD 二次开发之 ObjectARX 环境搭建_第6张图片AutoCAD 二次开发之 ObjectARX 环境搭建_第7张图片
    <附加库依赖>
    AutoCAD 二次开发之 ObjectARX 环境搭建_第8张图片AutoCAD 二次开发之 ObjectARX 环境搭建_第9张图片

  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 
    #include 
    #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行
    AutoCAD 二次开发之 ObjectARX 环境搭建_第10张图片
  3. 代码替换为:
"itemText" ID="DialogList" ACCESSKEY="d" CLASSID="CLSID:087da97a-e2f4-472a-bb48-0bcdfaa20fb3">
 
  

大功告成,右键新建类,选择 ObjectARX 类库时正常!
AutoCAD 二次开发之 ObjectARX 环境搭建_第11张图片
AutoCAD 二次开发之 ObjectARX 环境搭建_第12张图片

你可能感兴趣的:(AutoCAD,ObjectARX,visual,studio,c++,mfc)