• 本项目使用手动创建,意为不使用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

  1. 在“添加新项目”对话框中,选择项目“ Def File(.def)”。
  2. 在“名称:”编辑框中输入“ ArxProject”。然后打开,输入以下内容
    EXPORTS
    acrxEntryPoint PRIVATE
    acrxGetApiVersion PRIVATE

 现在生成项目,应该是0警告,0错误,得到一个arx文件。

 ARX文件的机制类似于DLL文件,加载到CAD程序中,然后通过CAD的命令来调用,所以没有main函数。

 整个程序的中心思想是,设计自己的函数,然后把这个函数通过回调函数注册给CAD程序,打开CAD去调用自己的函数。  

  下一节我们来执行ARX文件。

AutoCAD ObjectARX 二次开发(2020版)--2,手动创建CAD二次开发项目--的更多相关文章

  1. 2,手动创建CAD二次开发项目--AutoCAD二次开发(2020版)

    本项目使用手动创建,意为不使用SDK模板. 从Visual Studio的“文件”下拉菜单中,选择“新建”->“项目...”. 在出现的“新建项目”对话框的“项目类型:”树中,单击“ Visua ...

  2. servlet基本原理(手动创建动态资源+工具开发动态资源)

    一.手动开发动态资源 1 静态资源和动态资源的区别 静态资源: 当用户多次访问这个资源,资源的源代码永远不会改变的资源. 动态资源:当用户多次访问这个资源,资源的源代码可能会发送改变. <scr ...

  3. Maven 系列 二 :Maven 常用命令,手动创建第一个 Maven 项目【转】

    1.根据 Maven 的约定,我们在D盘根目录手动创建如下目录及文件结构: 2.打开 pom.xml 文件,添加如下内容: <project xmlns="http://maven.a ...

  4. Maven 系列 二 :Maven 常用命令,手动创建第一个 Maven 项目

    1.根据 Maven 的约定,我们在D盘根目录手动创建如下目录及文件结构: 2.打开 pom.xml 文件,添加如下内容: 1 <project xmlns="http://maven ...

  5. AutoCAD二次开发(2020版)--4,使用ARX向导创建编程模板(框架)--

    手动创建ObjectARX应用程序非常麻烦,在此步骤中,将介绍ObjectARX向导. 在这里,我们将使用ObjectARX向导创建我们的ObjectARX应用程序. 本节的程序的需求是,接收CAD用 ...

  6. AutoCAD ObjectARX(VC)开发基础与实例教程2014版光盘镜像

    AutoCAD ObjectARX(VC)开发基础与实例教程2014,最新版,光盘镜像 作者:张帆 朱文俊 编著 出版社:中国电力出版社 出版时间:2014年6月 点击一下

  7. 阿里巴巴java开发手册(2020版)

    阿里巴巴java开发手册(2020版) 2020版 链接: pan.baidu.com/s/1Zls_FUBK- 密码: titz 2019版 链接: pan.baidu.com/s/1cvCVQvj ...

  8. 基于.NET的CAD二次开发学习笔记二:AutoCAD .NET中的对象

    1.CAD对象:一个CAD文件(DWG文件)即对应一个数据库,数据库中的所有组成部分,看的见(包括点.多段线.文字.圆等)和看不见(图层.线型.颜色等)的都是对象,数据库本身也是一个对象. 直线.圆弧 ...

  9. CAD二次开发起步

    1 环境搭建(VS 2017 + CAD 2019) CAD版本一般要比VS版本晚两年以上,比如我现在使用VS2017,则CAD要用2019版,至于CAD2018能不能用没试验过,有兴趣的小伙伴可以试 ...

  10. CAD二次开发

    用C#有一段时间了,由于单位需要,开始接触CAD二次开发,网上一搜,加入CAD开发的群,零零碎碎看了一些文章和博客,没有系统地的知识,能解决一些小问题.最近开始系统学习,再次推荐两本书,一本事纸质版的 ...

随机推荐

  1. [ansible]wget批量调用shell脚本

    前言 相较于使用playbook,个人更习惯于编写shell脚本.如果需要多台服务器执行某一任务,可以将脚本放在某个http服务目录下,比如nginx,然后通过ansible的shell模块让服务器通 ...

  2. 简述redis的单线程模式

    前言 在redis版本6之前,网络IO和键值对读写都是由一个线程来完成的.而redis的其他功能,比如持久化.异步删除.集群数据同步等,是由其他线程完成的. 为什么采用单线程 多线程有助于提升吞吐率( ...

  3. ignite

    目录 简介 运行 制作vm文件系统 制作vm基础文件系统文件 创建contianerdClient 创建cniInstance 拉取基础镜像 创建基础文件系统文件 制作vm内核文件 Create vm ...

  4. SpringBoot如何整合spring-retry来实现接口请求重试

    一.重试机制 由于网络不稳定或网络抖动经常会造成接口请求失败的情况,当我们再去尝试就成功了,这就是重试机制. 其主要目的就是要尽可能地提高请求成功的概率,但一般情况下,我们请求第一次失败,代码运行就抛 ...

  5. 前后端分离中台框架 Admin.Core 学习-介绍与配置说明

    中台框架后端项目 Admin.Core 的介绍与配置说明 中台admin是前后端分离权限管理系统,Admin.Core为后端项目,基于.NET 7.0开发. 支持多租户.数据权限.动态 Api.任务调 ...

  6. linux cat查看文件使用grep实现多条件多场景过滤

    转载请注明出处: 在实际应用过程中,我们查看日志文件时,经常会根据一定自定义的词语过滤,查看所有相关的数据行.最近遇到用cat查看文件,需要根据多关键词进行不同的场景过滤,在这里进行一个简单的总结: ...

  7. 《Web安全基础》02. 信息收集

    @ 目录 1:CDN 绕过 1.1:判断是否有 CDN 服务 1.2:常见绕过方法 1.3:相关资源 2:网站架构 3:WAF 4:APP 及其他资产 5:资产监控 本系列侧重方法论,各工具只是实现目 ...

  8. 9k+ Star 简洁好用的开源 Linux 运维管理面板

    如果你的公司需要进行服务器运维管理,那么运维管理面板就是一个不可或缺的需求.因为并非每一位运维工程师都能在命令行下游刃有余,不需要借助辅助工具就能确保服务器安全.流畅运行.尤其是对于刚刚踏入运维领域的 ...

  9. 手机用户的开源福音「GitHub 热点速览」

    不知道多少用安卓机的小伙伴,被开屏广告烦过.相比有些克制的 iOS 机,安卓机是个应用基本上都有开屏广告,少则 3s 多则 10s,本周获得 1k+ star 的 Android-Touch-Help ...

  10. springcache+redis实战

    前言 有兴趣的同学,可以看我上一篇文章,然后再过来看会比较清楚点:https://www.cnblogs.com/yhc-910/p/14884678.html springcache,简单说,就是用 ...