2、Arx二次开发创建第一个应用程序
一、本节课程
Arx二次开发创建第一个应用程序
二、本节要讲解的知识点
1、手动创建ARX的应用的步骤。
2、应用向导创建ARX应用程序的步骤。
三、具体内容
1、需求:创建一个Hello World应用程序,在AUTOCAD的命令行输出“Hello World”。
2、手动创建一个ARX应用程序:C++开发ARX应用程序,实际上我们ARX应用程序就是一个动态链接库,它的后缀只是没用.DLL来表示而已,是用.ARX 来表示的。与常规的DLL程序一样,ARX程序在AUTOCAD调用时加载,与AUTOCAD本身的代码是相互独立的。
设置编译器的参数,包括代码的生成方式。
设置连接器的参数,包括输出文件的名称,添加链接库文件等。
新建一个DLL文件,引用ARX API的头文件和库文件,然后设置编译器参数和连接器参数。将生成文件的后缀改为“.DLL”文件即可。在代码里面创建两个函数分别用户初始化和卸载ARX程序。 void InitApp(); void UnloadApp();
具体请参见收费课程C++ ARX开发的免费试听部分。
3、向导创建一个ARX应用程序:
(1)ObjectARX应用程序:在AUTOCAD中调用。
(2)ObjectDBX应用程序:在所有的REALDWG宿主程序中调用(包括AUTOCAD),自定义实体开发的时候,可以创建此类程序。
(3)Console程序:高版本的AUTOCAD出现的一种开发方式。(AUTOCAD2013以后出现的一种新的开发方式),将AUTOCAD Console应用程序放置在服务器端(比如说服务器端自动打印),特点就是不需要交互,运行速度很快。




4、向导自动帮我们生成了一些头文件和源文件。其中acrxEntryPoint.cpp是ARX程序的入口点。
(1)ARX模块加载时执行的函数
virtual AcRx::AppRetCode On_kInitAppMsg (void *pkt) {
AcRx::AppRetCode retCode =AcRxArxApp::On_kInitAppMsg (pkt) ;
//通常需要加入的代码,在这里可以放入软件锁检测的代码。
return (retCode) ;
}
(2)ARX模块卸载时执行的函数
virtual AcRx::AppRetCode On_kUnloadAppMsg (void *pkt) {
AcRx::AppRetCode retCode =AcRxArxApp::On_kUnloadAppMsg (pkt) ;
return (retCode) ;
}
5、此外向导还创建了命令的模板,我们可以根据模板来定义自己想要定义的命令:MyCommand。
(1)第一处修改
ACED_ARXCOMMAND_ENTRY_AUTO(CArxProject2App, yunyouMyGroup,CommandABC, CommandABC, ACRX_CMD_MODAL, NULL)
(2)第二处修改
static void yunyouMyGroupCommandABC () {
}


6、在命令中实现一个HelloWorld的打印。
static void yunyouMyGroupCommandABC () { acutPrintf(TEXT("Hello world!"));}
四、总结
1、手动创建ARX的应用的步骤请参见收费课程的试听部分。
2、应用向导创建ARX应用程序的步骤。
3、如何在ARX中添加命令和命令实现函数。
4、创建第一个应用程序Hello World。
2、Arx二次开发创建第一个应用程序的更多相关文章
- c++ Arx二次开发创建椭圆和样条曲线
一.本节课程 c++ Arx二次开发创建椭圆和样条曲线 二.本节要讲解的知识点 1.如何应用C++ ARX二次开发创建椭圆(对AcDbEllipse类的构造函数的直接封装和根据外接矩形来创建椭圆) 2 ...
- 4、c++ Arx二次开发创建多段线
一.本节课程 c++ Arx二次开发创建多段线 二.本节要讲解的知识点 如何应用C++ ARX二次开发创建多段线(AcDbPolyline.AcDb2dPolyLine.AcDb3dPolyline的 ...
- ASP.NET MVC 5 03 - 安装MVC5并创建第一个应用程序
不知不觉 又逢年底, 穷的钞票 所剩无几. 朋友圈里 各种装逼, 抹抹眼泪 MVC 继续走起.. 本系列纯属学习笔记,如果哪里有错误或遗漏的地方,希望大家高调指出,当然,我肯定不会低调改正的.(开个小 ...
- SharePoint使用BCS开发你第一个应用程序(一)
SharePoint使用BCS开发你第一个应用程序(一) 本系列教你使用BCS(Business Connectivity Service)创建OBA(Office business ...
- SharePoint使用BCS开发你第一个应用程序(三)
SharePoint使用BCS开发你第一个应用程序(三) 创建外部内容类型. 创建外部内容类型有三种不同方式: 1. 在记事本上手写XML代码(不推荐). 2. 使用SharePoin ...
- Netty入门二:开发第一个Netty应用程序
Netty入门二:开发第一个Netty应用程序 时间 2014-05-07 18:25:43 CSDN博客 原文 http://blog.csdn.net/suifeng3051/article/ ...
- TODO:即将开发的第一个小程序
TODO:即将开发的第一个小程序 微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验.个人理解小程序是寄宿在微信平台上的一个前端框架,具有跨平台功能, ...
- Civil 3D 二次开发 创建AutoCAD对象—— 00 ——
不积跬步无以至千里,不积小流无以成江海.虽然创建一条直线.添加一个图层这样的小程序没有什么实际意义(内部命令很简单就可以完成),但对于初学二次开发的您来说,这可是一大步,这一步跨出去,您就跨进了二次开 ...
- Civil 3D 二次开发 创建Civil 3D 对象—— 01 —— 创建几何空间点
这一小节,我们创建派生于CivilCreateEntityDemo的类CivilCreateCogoPoint,来创建几何空间点. 1 创建类并添加字段及方法 首先在项目资源管理器中向本项目中添加类, ...
随机推荐
- python基础学习16----模块
模块(Module)的引入 import 模块名 调用模块中的函数的方式为 模块名.函数名 这种方式引入会相当于将模块中代码执行一遍,所以如果引入的模块中有输出语句,那么只写import 模块名,运行 ...
- Python初学者第三天 运算符、while循环
3day Python基础语法 1.运算符:算数运算符.比较运算符.赋值运算符.逻辑运算符 A.算数运算符:a=10,b=3 + 加 a+b - 减 a-b * 乘 a*b / 除 a/b ...
- 牢记 31 种 CSS 选择器用法
原文 The 30 CSS Selectors you Must Memorize 由 Jeffrey Way 发表于 2011 年 6 月,介绍了 30 种最常用的 CSS 选择器用法,多加了一种, ...
- 中国将有可能在全球化的背景下收获新的人口红利:3星|《<财经>2019:预测与战略》
<财经>2019 :预测与战略 <财经>杂志的年刊.内容是针对2019年的预测分析.我认为<财经>的调查报告比较有深度,分析则不是我爱看的类型. 总体评价3星,有参 ...
- 小米3系统计算器自己定义开关控件-MySwitchView
1.前言 在android4.0以后,有switch控件.相似于iPhone上面滑块的效果.可是仅仅能用在4.0以后的系统中.之前的平台.就无法使用这种控件. 近段时间.看到了 ...
- Spring IOC 之 SmartInitializingSingleton
使用 实现该接口后,当所有单例 bean 都初始化完成以后, 容器会回调该接口的方法 afterSingletonsInstantiated. 主要应用场合就是在所有单例 bean 创建完成之后,可以 ...
- windows下一根数据线玩转树莓派zero(w)
买了个树莓派zero w,想着用一根普通micro数据线达成 供电+ssh+通过usb共享网络+远程桌面 的目标 通过用静态ip免去了用benjour的连接不稳定方法,下面开始细说 需要的硬件: 树莓 ...
- java代码,在linux上删除文件
1.其实在linux上和window是一样的 2.path 传入的路径(直接从根目录到你的文件的位置) public static boolean delFile(String path) { log ...
- 【转】SVN branches trunk 合并 讲解
转自:http://blog.csdn.net/e3002/article/details/21469437 使用svn几年了,一直对分支和合并敬而远之,一来是因为分支的管理不该我操心,二来即使涉及到 ...
- HTTP请求header信息讲解
HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息.这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成.HTTP的头域包括通用头,请求头,响应头和 ...