2,手动创建CAD二次开发项目--AutoCAD二次开发(2020版)
- 本项目使用手动创建,意为不使用SDK模板。
- 从Visual Studio的“文件”下拉菜单中,选择“新建”->“项目...”。
- 在出现的“新建项目”对话框的“项目类型:”树中,单击“ Visual C ++”节点。
- 在模板列表中选择“ Windows桌面向导”。
- 在项目名称编辑框中输入所需的项目名称,例如“ Step01”,然后确定

- 确定后弹出对话框,从应用程序类型下拉选项中选择动态链接库。

项目创建成功之后,开始配置项目属性。右键点击解决方案,选择属性。依次配置下面内容:
“ C / C ++”->“常规”:
在“附加包含目录”中,添加ObjectARX SDK的头文件路径。
将“警告等级”设置为“ 1级”。
调试信息格式选择 程序数据库(/Zi)
“ C / C ++”->“代码生成”:
在“运行库”中,选择“多线程DLL(/MD)”。
“ C / C ++”->“预处理器”:
删除宏_DEBUG。
“ 配置属性”->“常规”:
平台工具集选择Visual Studio 2017 (v141)
目标文件扩展名修改为 .arx
配置类型 改为 动态库.dll
“链接器”->“输入”:
“附加依赖项”中,添加以下库:
rxapi.lib
acdb23.lib
acge23.lib
acad.lib
ac1st23.lib
accore.lib
“模块定义文件” 添加 ArxProject.def
“链接器”->“常规”:
“输出文件” 修改为 $(OutDir)AdskStep01_2020.arx
“附加库目录” 中添加SDK的库文件夹路径(存放Lib文件的文件夹)
配置完毕,现在我们添加一个 .cpp文件到项目中。名字任意。注意,以后所有的SDK都代指ObjectARX 2020版。
#include "stdafx.h"
#include "tchar.h"
#include <aced.h> //这是SDK里的头文件
#include <rxregsvc.h>//这是SDK里的头文件 //这是编程框架需要的函数,加载程序时调用,类似构造函数。里面调用了CAD API,向CAD注册了一个新指令
void initApp()
{
acedRegCmds->addCommand(_T("HELLOWORLD_COMMANDS"), _T("Hello"),_T("Bonjour"), ACRX_CMD_TRANSPARENT,helloWorld);
} //这是编程框架需要的函数,卸载程序时调用,类似析构函数
void unloadApp()
{
acedRegCmds->removeGroup(_T("HELLOWORLD_COMMANDS"));
} //这是我们自己的函数,acutPrintf是SDK里的输出函数,类似C语言的printf。
void helloWorld()
{
acutPrintf(_T("\nHello World!"));
} //这是CAD调用插件的入口函数,类似于程序的main函数。
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;
default:
break;
}
return AcRx::kRetOK;
}
最后,添加def文件
快捷键Ctrl + Shift + A
- 在“添加新项目”对话框中,选择项目“ Def File(.def)”。
- 在“名称:”编辑框中输入“ ArxProject”。然后打开,输入以下内容
EXPORTS
acrxEntryPoint PRIVATE
acrxGetApiVersion PRIVATE
现在生成项目,应该是0警告,0错误,得到一个arx文件。
ARX文件的机制类似于DLL文件,加载到CAD程序中,然后通过CAD的命令来调用,所以没有main函数。
整个程序的中心思想是,设计自己的函数,然后把这个函数通过回调函数注册给CAD程序,打开CAD去调用自己的函数。
下一节我们来执行ARX文件。
2,手动创建CAD二次开发项目--AutoCAD二次开发(2020版)的更多相关文章
- 简单创建一个SpringCloud2021.0.3项目(二)
目录 1. 项目说明 1. 版本 2. 用到组件 3. 功能 2. 上一篇教程 3. 创建公共模块Common 4. 网关Gateway 1. 创建Security 2. Security登陆配置 3 ...
- 1,下载和部署开发环境--AutoCAD二次开发
环境需求为: AutoCAD 2020版 ObjectARX SDK 下载地址:https://www.autodesk.com/developer-network/platform-technolo ...
- 使用MyEclipse开发Java EE应用:用XDoclet创建EJB 2 Session Bean项目(二)
[MyEclipse最新版下载] 二.创建一个Session EJB – Part 1 MyEclipse中的EJB 2.x开发使用了EJB向导和集成XDoclet支持的组合. 每个EJB由三个基本部 ...
- iOS开发项目之二 [ App appicon与启动图]
*appicon尺寸 *不是所有的appicon都是需要配置 *尽量不要透明--(透明的话,会在桌面显示成背景黑色) 1 如果没有配置5s的启动图,回去往下找,找到4s之后,会把界面以4s启动图的大小 ...
- 手动创建Maven项目并建立两个项目之间的依赖关系
用命令行快速建立maven项目 -> mvn:archetype:generate -> 直接回车或者自己输入你想生成的 -> groupId ->artifactId -&g ...
- 简单创建一个SpringCloud2021.0.3项目(一)
目录 1. 项目说明 1. 版本 2. 用到组件 3. 功能 2. 新建父模块和注册中心 1. 新建父模块 2. 新建注册中心Eureka 3. 新建配置中心Config 4. 新建两个业务服务 1. ...
- 简单创建一个SpringCloud2021.0.3项目(四)
目录 1. 项目说明 1. 版本 2. 用到组件 3. 功能 2. 上三篇教程 3. 日志处理 1. 创建日志公共模块 2. Eureka引入日志模块 4. 到此的功能代码 5. 注册中心换成naco ...
- 简单创建一个SpringCloud2021.0.3项目(三)
目录 1. 项目说明 1. 版本 2. 用到组件 3. 功能 2. 上俩篇教程 3. Gateway集成sentinel,网关层做熔断降级 1. 超时熔断降级 2. 异常熔断 3. 集成sentine ...
- myeclipse中使用gradle开发项目
gradle可以直接使用maven的代码库,并且支持编程,可以说是maven的加强版.今天我们学习下,如何在MyEclipse下使用gradle开发项目.我们的开发环境:myeclipse 2015, ...
随机推荐
- LeetCode 把二叉搜索树转换为累加树
第538题 给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和. 例如: 输入: 二叉 ...
- charles 编辑菜单总结
本文参考:charles 编辑菜单总结 charles中proxy菜单的介绍:我的是4.1.2版本,mac系统下的菜单大同小异: 如下图: 这里其实都是常用的功能: 大概可以分为5个大块,看下分割线就 ...
- 42 (OC)* 字典实现原理--哈希原理
一.NSDictionary使用原理 1.NSDictionary(字典)是使用 hash表来实现key和value之间的映射和存储的,hash函数设计的好坏影响着数据的查找访问效率. - (void ...
- Java连载34-对象的内存分析、对象之间建立关系
一.内存分析 代码:引用可以是局部变量也可以是成员变量 public class Test1{ public static void main(String[] args){ User u = new ...
- 小白专场-FileTransfer-c语言实现
目录 一.集合的简化表示 二.题意理解 三.程序框架搭建 3.1 Input_connection 3.2 Check_connection 3.3 Check_network 四.pta测试 五.按 ...
- 打印方案之web打印
前言: 前一段时间在工作中,遇到需要通过打印实现对报表或者工作流清单等事情时,都需要运用到打印功能,那么 ,这个时候你会怎么处理? 在这里,我们可以通过最简单的方式实现web打印功能,简单易懂,方便快 ...
- 【SQL基础】char,nchar,vchar,nvchar之间的区别
(1) 定义: char: 固定长度,存储ANSI字符,不足的补英文半角空格. nchar: 固定长度,存储Unicode字符,不足的补英文半角空格 varchar: 可变长度 ...
- JS 生成唯一值UUID
md5加密new Date()生成的值可能不是唯一的,另一种生成唯一值的方式: getUID: function() { // 获取唯一值 return 'xxxxxxxx-xxxx-4xxx-yxx ...
- 微信公众平台开发(57)Emoji表情符号 【转发】
微信公众平台开发(57)Emoji表情符号 微信公众平台开发 微信公众平台开发模式 企业微信公众平台 Emoji表情符号 作者:方倍工作室 地址:http://www.cnblogs.com/tx ...
- 瀑布流实例及懒加载(echo.js)
瀑布流布局: 图片等宽,不定高,按最低高度来顺序排列:实现方法:获取每次获取四行中最低高度对应的一行,将下一张加载的图片放在该位置,每次加载前都获取最低高度: ①请求图片的接口 地址此php文件 ...