AutoCAD 二次开发之 ObjectARX 环境搭建
AutoCAD2017,VS2015,Win7/Win10
第一步:安装ObjectARX SDK 库
解压 ObjectARX SDK 文件到指定路径:C:\ObjectARX;(避免出错,使用默认路径)
第二步:安装向导程序
创建注册表:新建一个 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;
双击运行 【MSI添加管理员运行.reg】;
右击 【ObjectARXWizards.msi】,以管理员身份运行;
第三步:手动创建ARX项目
创建一个Win32空的dll 项目;
创建好项目后,向项目中添加以下文件,并编写以下代码:
stdafx.h#pragma once #define WIN32_LEAN_AND_MEAN#include <Windows.h> #include "tchar.h"
stdafx.cpp
#include "stdafx.h"
接着进行项目配置:
1- [属性]->[配置属性]->[常规]->[目标文件扩展名].dll -> .arx
2- [属性]->[配置属性]->[C/C++]->[常规]->[附加包含目录](头文件路径)
3- [属性]->[配置属性]->[C/C++]->[常规]->[代码生成]->[运行库]多线程DLL(/MD)
4- [属性]->[配置属性]->[链接器]->[常规]->[附加库目录]
5- [属性]->[配置属性]->[链接器]->[输入]->[附加库依赖]
图文对照:
<目标文件扩展名>
<附加包含目录>
<运行库>
<附加库目录>
<附加库依赖>
创建 HelloARX.cpp文件并添加以下代码:
#include "stdafx.h"BOOL APIENTRY DLLMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID ipReserved) {return TRUE; }
这是dll的入口;
创建HelloARX.def模块文件并添加以下代码:
LIBRARY HelloARX DESCRIPTION "First ARX Application."EXPORTS acrxEntryPoint PRIVATE acrxGetApiVersion PRIVATE
创建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基础类
- 找到:C:\Program Files (x86)\Autodesk\ObjectARX 2017 Wizards\ArxWizMFCSupport\HTML\1033 路径下的 default.htm 文件,以记事本的方式打开它;
- 找到第332行
- 代码替换为:
<OBJECT CLASS="itemText" ID="DialogList" ACCESSKEY="d" CLASSID="CLSID:087da97a-e2f4-472a-bb48-0bcdfaa20fb3">
大功告成,右键新建类,选择 ObjectARX 类库时正常!
AutoCAD 二次开发之 ObjectARX 环境搭建相关推荐
- AutoCAD二次开发之ObjectARX环境搭建(AutoCAD2017 VS2015 Win10)
CAD二次开发环境搭建详细介绍 最近进行CAD二次开发的研究,发觉网上看起来像是很多资料但是实用的不多,而且有些资料还特别的旧.在本篇文件中,我将最近自己的学习跟大家分享一下.另外还会附上简单的资料. ...
- mysql安装连接测试c_C连接MySQL数据库开发之Windows环境搭建及测试_MySQL
一.开发环境 Win8.1 64位.VS2013.MySQL5.5.3764位 MySQL安装目录为:C:/Program Files/MySQL/MySQL Server 5.5二.配置工程环境 首 ...
- JSP开发之TomcatEclipse环境搭建(创建项目运行一个简单的jsp文件)
通过之前的内容,咱们现在已经安装好了Tomcat服务器了,但是为了项目创建和扩展,咱们还需要使用Eclipse这个东西来搭建一个编码环境.废话不多说,咱们可以在https://www.eclipse. ...
- 区块链开发之Truffle环境搭建
前言 truffle是以太坊目前最流行的一个开发框架,通过truffle我们可以开发基于以太坊的去中心化应用(Dapp).这篇文章介绍如何安装truffle并运行第一个Dapp程序. 预备环境要求: ...
- ESP8266-NodeMCU物联网开发之Arduino环境搭建
Arduino教程传送门
- AutoCAD .Net二次开发之Editor选择集
AutoCAD .Net二次开发之Editor选择集 PickFirst选择集 一般选择集 选择集过滤SelectionFilter Editor的路径: Autodesk.AutoCAD.Appli ...
- AutoCAD .Net二次开发之JIG动态绘制详解
AutoCAD .Net二次开发之JIG动态绘制详解 AutoCAD平台动态绘制分两种,单实体绘制EntityJig和多实体绘制DrawJig,需要自己自定义类去继承.(本人的理解全放在了代码注释中, ...
- Android 开发之Windows环境下Android Studio安装和使用教程(图文详细步骤)
鉴于谷歌最新推出的Android Studio备受开发者的推崇,所以也跟着体验一下. 一.介绍Android Studio Android Studio 是一个Android开发环境,基于Intel ...
- C#进行MapX二次开发之MapX基础知识
C#进行MapX二次开发之MapX基础知识 MapX的主要技术特点 (1). 以表(Table)的形式组织信息 每一个表都是一组MapInfo文件,这些文件组成了地图文件和数据库文件.为使用MapIn ...
- C#进行Visio二次开发之Shape的Data1、Data2、Data3的用处
我们知道,Visio的Shape对象有有3个比较特别的属性,分别是Data1.Data2.Data3,平常我们很少用到它,因为我们如果需要属性的话,可能会通过ShapeSheet的Customed P ...
最新文章
- Echarts渲染选择SVG /canvas
- 使用tensorflow训练数据时遇到的问题总结
- 下沉市场消费升级静悄悄?
- 把 Console 部署成 Windows 服务,四种方式总有一款适合你!
- python做硬件自动化测试仪器_基于Python PyVisa和GPIB的硬件测试仪器控制方法
- 1195C. Basketball Exercise
- 上的img表示什么_方向盘上的SET、RES和CNL,表示什么意思?别弄错了
- go语言打包html,Go语言-打包静态文件
- 【转】01背包问题动态规划详解
- Eclipse 导入项目与 svn 插件关联全过程记录
- 面向集团客户云计算运营平台的市场情况及产品发展——之云计算运营平台方案(二)...
- R语言大作业(二):上海市人口普查数据分析
- linux下部署selenium爬虫程序
- 如何在 Excel 中计算 NPS
- 冒泡排序 java代码实现
- 计算机图形学——Liang-Barsky算法
- 极光Im + layIm 实现后台聊天
- CSS的浮动属性,详细学习指南
- 计算机前沿软件应用课程怎么样,信息技术前沿心得体会|信息技术应用心得体会...
- 零基础ESP8266学习篇-认识esp8266
热门文章
- C语言程序设计题解pdf,C语言程序设计题解与上机指导.pdf
- linux wifi驱动rtl8188移植
- 收集表的使用与批量图片下载
- 短视频解析易语言代码
- 天翼,有毒?“校园客户端挂马事件”雷锋网独家解析
- 5G 引发的科技变革
- mac matlab 模糊,MATLAB 2014a 在Mac OS X yosemite 10.10 Retina显示模糊的解决办法
- GBS服装分床裁剪计划软件V4.0正式发布
- 基于Java的贪吃蛇游戏设计(含免费可用源代码)
- DXL应用:向设计元素中添加设计元素