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 创建类并添加字段及方法 首先在项目资源管理器中向本项目中添加类, ...
随机推荐
- PyQt5--QLineEdit
# -*- coding:utf-8 -*- ''' Created on Sep 20, 2018 @author: SaShuangYiBing Comment: ''' import sys f ...
- MySql详解(六)
MySql详解(六) MySql事务 一.含义 事务:一条或多条sql语句组成一个执行单位,一组sql语句要么都执行要么都不执行 二.特点(ACID) A 原子性:一个事务是不可再分割的整体,要么都执 ...
- laravel扩展推荐
1. Intervention/image 图片处理 2.Laravel User Agent 轻松识别客户端信息 3.OAuth 2.0 支持 4.页面面包屑工具 5.计划任务分发器(直接可替换掉 ...
- linux(centos 7) 下安装nodejs
1,到node官网下载linux版本,有32和64位版本 2,将文件上传到linux下 3,使用tar -xvf node-v8.9.3-linux-x64.tar.xz 进行解压 4,建立软连接,变 ...
- lambda函数详解
lambda函数的作用就是可以编写内嵌的无名函数,而不必写成独立的函数: 结构:[]为开始,(参数){函数体} 例如: 1. auto lambdaFun1 = [](int a) {std::cou ...
- shiro实战系列(十二)之常用专业术语
请花 2 分钟来阅读和理解它——这很重要.真的.这里的术语和概念在文档的任何地方都被涉及到,它将在总体上 大大简化你对 Shiro 和安全的理解. 由于所使用的术语使得安全可能令人困惑.我们将通过 ...
- 根据Uri获取文件的绝对路径
简易版处理(实际并没发现有什么问题) public static String getRealPathFromURI(Context context, Uri contentURI) { String ...
- 初学者在Mysql8.0连接时的几个常见基本问题
最近在做一些java web整合时使用的最新版Mysql8.0.3,发现Mysql连接中的几个问题,总结如下: package db; import java.sql.*; public class ...
- Python2.7-weakref
weakref 模块,允许创建对象的弱引用,被弱引用的对象其引用计数不变,对象的引用计数为0时就会被垃圾清理机制释放内存空间,此时对其的弱引用也会失效.在对象会被交叉引用,需要释放内存空间时常用. 模 ...
- JAVA框架Struts2 结果页配置
一: Action类的返回逻辑视图,一般会出现一个场景就是:当前package 标签下,几个action类需要返回同一个页面的时候.这个时候需要全局结果. 全局结果(使用标签<global-re ...