VS2019/2022 开发CAD ObjectArx 2016

news2024/9/30 23:32:21

开发版本配置图

ObjectARX开发VC版本对照表R14~AutoCAD2024
请添加图片描述

下载地址

Visual Studio 2012/2013下载地址
CAD 版本Wizard和SDK安装包
ObjectARX官方下载地址(不定期更新)

序言

写这篇文章是想记录一下我的配置历程,因为我的电脑C盘空间不足以安装太多的CAD版本和VC环境,目前我的配置就是CAD2016 + VS2019/2022,希望可以通过不安装CAD完成CAD的开发,主要调试CAD2016版本后续的版本只能靠使用人员回返问题bug来解决或者公司给我换台新电脑。
所以文章会写多版本的环境但是只配置2016剩下的基本一致修改一下就可以.有条件还是安装多个版本VS和CAD会好很多,这种比较紧张环境需要更多的查阅资料才能进行工作,会比较难受。

配置环境

编译环境

  1. 从表里面可以看到环境映射,所以需要安装一下VS2012给一个编译环境。VS2015以上可以直接通过Visual Studio Install点即单个组件或者相应版本的VS修改添加相应的平台工具集即可,见图3此处我原本不想安装VS直接copy了window v110的环境过来,但是后续发现,程序需要使用里面的 cl.exe , rc.exe 编译

  2. 下载vs2012的安装包,是.iso的安装包,直接双击进入包内部,点击安装即可安装,这里因为只需要VC环境,只安装VC部分即可。
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

  3. 等待安装完成,在安装位置我们看到相关的Windows SDK 和 2012的安装组件,此时2016的编译环境配置已经完成,下一步需要配置CAD的开发环境。

CAD环境

Wizards与SDK下载与安装

这一步更像是把许多版本的自动化安装变为手动安装,如果已经预先安装了指定版本的CAD可以直接使用Wizard进行安装,CAD的配置文章网络上面有许多。

Visual Studio 2017 + ObjectARx2019 + AutoCAD2020环境搭建与工程编译问题处理
CAD2016 Object Arx开发环境搭建与HelloWorld实现

如果没有则需要按照我上面给出的git链接,去仓库将需要的版本文件下载下来,我这里下载了2016和2018。
如果无法从github下载,我这里提供了2016~2024的所有版本wizards的安装文件,下载位置
在这里插入图片描述
超过2020的Wizard则建议直接去CAD官方下载,下载链接为: https://aps.autodesk.com/developer/overview/autocad
在这里插入图片描述

配置

此处参照的往上的教程,主要是修改vsz的里面的程序路径和vs项目模板

  1. 此处我将下载的2016解压到指定位置
    在这里插入图片描述

  2. 进入2016的文件夹,install文件夹种的文件需要自己将文件复制到自己的主要编译工具下面的文件夹中,此处我将文件放在vs2019下面,路径是:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\VC,其中文件夹ObjectArx文件夹放在下图1位置,想向导文件放置在vsprojects在这里插入图片描述

  3. 其中放置版本向导文件时,我只在C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\VC\vcprojects\Autodesk里面放置了自己需要的相应文件
    在这里插入图片描述

  4. 打开想到文件ArxAppWiz.vsz,此处我们修改Param="ABSOLUTE_PATH,将路径修改为Wizard的路径。如果配置完成后,在VS2019中无法显示,可以将wizard的版本修改为16.0,此处主要是映射vs需要的环境
    在这里插入图片描述

  5. 如果想在最后的生成项目时进行区分可以修改vsdir文件中的注释,增加上版本内容
    在这里插入图片描述

  6. 现在想到文件配置完成需要回到wizard文件中配置当前版本的模板文件,使用记事本打开Autodesk.arx-2016.props,修改里面的CAD安装路径,和SDK路径
    在这里插入图片描述

  7. 如果配置没有问题我们可以在vs中看到创建类型,双击类型即可创建文件
    在这里插入图片描述

Hello Word

VC项目需要借助当前版本的rc.exe和cl.exe,因为后期需要多版本所以这里可以直接在项目->属性中设置路径,如果太多参数,可以打开SDK里面的simple编译以下,编译成功之后直接将里面的配置copy过来就可以。下面是我的配置

  1. 确认平台工具集时2012
    在这里插入图片描述
    在这里插入图片描述

  2. $(VCInstallDir)bin\x86_amd64;$(VCInstallDir)bin;$(WindowsSDK_ExecutablePath_x86);$(VSInstallDir)Common7\Tools\bin;$(VSInstallDir)Common7\tools;$(VSInstallDir)Common7\ide;$(ProgramFiles)\HTML Help Workshop;$(MSBuildToolsPath32);$(FxCopDir);$(PATH);上面的VSInstallDir和WindowSDK可以中项目可以自动读取指定版本的编译文件,如果直接写道PATH里面,不指定编译版本路径,会报错rc.exe 命令执行错误.*其中很多博客中说的需要添加inc-x64文件夹路径再ArxSdkDir里面包含了,此处定义在Autodesk.arx-2016.props*指定,如果报错缺少文件可以重新将路径添加,见图2
    在这里插入图片描述

  3. 资源文件我进行了修改,使用项目自带的配置会造成UNICODE和_UNICODE两个宏定义重复引用,如果报错可以修改。vs如果报错无效的标识符,可以收工控制台传递一下参数,将里面报错确实的头文件引用到附加包含目录
    在这里插入图片描述

  4. 到这里就可以编写基本的代码测试,生成成功之后在CAD里面使用
    在这里插入图片描述

错误汇集

  1. 报错"cl.exe 已退出" , 此处是应为编译版本未配置,需要安装VS 20**版本进行编译环境配置
  2. 报错"rc.exe 错误代码 2 TRACKER : 错误 TRK0002: 未能执行命令:“"C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64\rc.exe" /D _UNICODE /D UNICODE /D _UNICODE /D UNICODE /l0x0409 /Ix64\Debug\ /nologo /fox64\Debug\ArxProject1.res ArxProject1.rc”。操作标识符不正确。"
    此处是因为没有正确指定windows版本的rc,需要按照不同cad版本的windows映射指定不同的路径

关于多版本开发的思路

目前时周五,可能周末需要配置一下家里的电脑,所以无法将思路时间,暂时记录一下后续再更新一下

通过创建多个版本的vcproj的项目文件,引用同一套代码文件,并再不同的版本的文件设置标识符进行多版本代码的编写。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/836908.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

详解AMQP协议

目录 1.概述 1.1.简介 1.2.抽象模型 2.spring中的amqp 2.1.spring amqp 2.2.spring boot amqp 1.概述 1.1.简介 AMQP,Advanced Message Queuing Protocol,高级消息队列协议。 百度百科上的介绍: 一个提供统一消息服务的应用层标准高…

爬虫---练习源码

选取的是网上对一些球员的评价,来评选谁更加伟大一点 import csv import requests import re import timedef main(page):url fhttps://tieba.baidu.com/p/7882177660?pn{page}headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/53…

Python:判断一个数是否为质数或者输出100以内的质数

质数 质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数。 如:2,3,5,7。。。 判断一个数是否为质数 range(2, n):范围在2~n(不包括n)之…

Mock.js的基本使用方法

官网网址:Mock.js (mockjs.com) 当前端工程师需要独立于后端并行开发时,后端接口还没有完成,那么前端怎么获取数据? 这时可以考虑前端搭建web server自己模拟假数据,这里我们选第三方库mockjs用来生成随机数据&#xf…

Java阶段五Day16

Java阶段五Day16 文章目录 Java阶段五Day16问题解析启动servlet冲突问题nacos注册中心用户信息验证失败前端效果不对前端请求到后台服务的流转过程 远程dubbo调用业务需求dubbo配置xml配置domain层代码 补充远程调用 师傅详情接口抽象开发WorkderServerControllerWorkerServerS…

一百四十二、Linux——查看Linux服务器架构的版本类型

一、目的 查看已经安装好的Linux服务器架构的版本类型,看服务器版本是32位还是64位 而且可以区分出是kettle的文件x86或x86_64,x86是32位,而x86_64是64位 注意: 32位的查询结果为i386、i686 64位的查询结果为x86_64 二、Linu…

idea配置docker部署

安装docker插件 setting -> plugins 配置docker远程连接 参考:docker配置远程连接端口 https://blog.csdn.net/jinying_51eqhappy/article/details/132103423?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%221…

探索CSS计数器:优雅管理网页元素的计数与序号

113. 探索CSS计数器:优雅管理网页元素的计数与序号 在前端开发中,我们经常需要对网页元素进行计数与序号,如有序列表、表格行号、步骤指示等。为了优雅地管理这些计数与序号,CSS提供了一种强大的功能:CSS计数器&#…

PHP实现首字母头像

<?php $name"哈哈"; $logoletter_avatar($name);echo <img src".$logo." style" border-radius: 50%;">;function letter_avatar($text) {$total unpack(L, hash(adler32, $text, true))[1];$hue $total % 360;list($r, $g, $b) hs…

【2023】Git版本控制-远程仓库详解

目录 创建远程仓库向远程仓库推送数据文件从第二台主机本地拉取远程仓库数据第一台主机同步远程仓库数据tag标签git忽略文件 Git远程仓库是Git版本控制系统的一个概念&#xff0c;它是一个存储Git代码的远程服务器。 你可以将本地Git仓库上传到远程仓库&#xff0c;以便与其他…

WSL1升级为WSL2

首先需要启用组件 使用管理员打开Powershell并运行 Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform启用后会要求重启计算机 从https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi获取WSL2 Linux内核更新包&#xff0c;…

实力肯定!Coremail入选中国信通院“铸基计划”2023全景图

近日&#xff0c;由中国信息通信研究院&#xff08;以下简称“中国信通院”&#xff09;主办的“2023数字生态发展大会”暨中国信通院“铸基计划”年中会议在京召开。 会上发布了《高质量数字化转型产品及服务全景图&#xff08;2023&#xff09;》&#xff0c;Coremail凭借着优…

【设计模式——学习笔记】23种设计模式——观察者模式Observer(原理讲解+应用场景介绍+案例介绍+Java代码实现)

文章目录 案例引入原始方案实现实现问题分析 介绍基础介绍登场角色 案例实现案例一类图实现分析 案例二类图实现 观察者模式在JDK源码的应用总结文章说明 案例引入 有一个天气预报项目&#xff0c;需求如下&#xff1a; 气象站可以将每天测量到的温度、湿度、气压等等以公告的…

修改状态栏The application could not be installed: INSTALL_FAILED_ABORTEDList

打开theme修改状态栏为可见。 <resources xmlns:tools"http://schemas.android.com/tools"><!-- Base application theme. --><style name"Base.Theme.MyApplication" parent"Theme.AppCompat.DayNight"><!-- Customize yo…

从入门到精通:Postman调试微信支付接口的绝佳方法

前期准备 在使用 Postman 调试微信支付接口之前&#xff0c;你需要做好以下准备&#xff1a; 安装 Postman 客户端应用&#xff0c;或使用网页版&#xff1b;成为 微信支付商户&#xff1b;已申请 商户API私钥。 当你已经具备这三个条件&#xff0c;就可以进入微信支付接口调…

【C语言学习】整数范围、整数越界、无符号数

1.整数范围 对于一个字节&#xff08;8位&#xff09;&#xff0c;可以表达的范围是00000000 ~ 11111111 其中00000000 ——> 0 11111111 ~ 10000000 ——> -1 ~ -128&#xff08;从大到小&#xff09; 00000001 ~ 01111111 ——> 1~127&#xff08;从小到大&#xff…

Yolov8新版本解读(二):优化点如何加入新版本,通过加入轻量级网络Ghostnetv2对比说明

本文目的: 最近yolov8进行了一次较大的更新,对一些优化点加在哪个位置上有些变动,因此本文主要通过具体案列进行对比和说明,以便在新版本上能够轻松上手。 老版本 ultralytics/nn 新版本更新为: modules文件夹下内容如下: 解读: 将modules.py拆分为 1.__init__.…

服务器中了malox勒索病毒后怎么办怎么解决,malox勒索病毒解密数据恢复

服务器遭受Malox勒索病毒攻击后&#xff0c;快速解密并恢复数据至关重要&#xff0c;以便减少更大的经济损失。近期&#xff0c;新的一波malox勒索病毒正在肆虐&#xff0c;我们收到很多企业的求助&#xff0c;企业的服务器数据库遭到了malox勒索病毒攻击&#xff0c;导致系统内…

四数之和——力扣18

文章目录 题目描述双指针法 题目描述 双指针法 class Solution { public:vector<vector<int>> fourSum(vector<int>& nums, int target){int nnums.size();vector<vector<int>> res;sort(nums.begin(), nums.end());for(int a0;a<n;a){if…

AI介绍——chat gpt/文心一言/claude/bard/星火大模型/bing AI

AI体验 1. AI 介绍&#xff08;注册和使用&#xff09;1.1 Chat GPT1.2 文心一言1.3 Slack 上的 Claude1.3.1 Claude 介绍1.3.2 Claude 使用 1.4 Google的Bard1.4.1 Bard 介绍1.4.2 Bard 使用 1.5 科大讯飞的星火大模型1.5.1 星火大模型 介绍1.5.2 星火大模型 使用 1.6 new bin…