开发版本配置图
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会好很多,这种比较紧张环境需要更多的查阅资料才能进行工作,会比较难受。
配置环境
编译环境
-
从表里面可以看到环境映射,所以需要安装一下VS2012给一个编译环境。VS2015以上可以直接通过
Visual Studio Install
点即单个组件或者相应版本的VS修改添加相应的平台工具集即可,见图3。此处我原本不想安装VS直接copy了window v110的环境过来,但是后续发现,程序需要使用里面的 cl.exe , rc.exe 编译 -
下载vs2012的安装包,是
.iso
的安装包,直接双击进入包内部,点击安装即可安装,这里因为只需要VC环境,只安装VC部分即可。
-
等待安装完成,在安装位置我们看到相关的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项目模板
-
此处我将下载的2016解压到指定位置
-
进入2016的文件夹,install文件夹种的文件需要自己将文件复制到自己的主要编译工具下面的文件夹中,此处我将文件放在vs2019下面,路径是:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\VC
,其中文件夹ObjectArx文件夹放在下图1位置,想向导文件放置在vsprojects
中 -
其中放置版本向导文件时,我只在
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\VC\vcprojects\Autodesk
里面放置了自己需要的相应文件
-
打开想到文件
ArxAppWiz.vsz
,此处我们修改Param="ABSOLUTE_PATH
,将路径修改为Wizard的路径。如果配置完成后,在VS2019中无法显示,可以将wizard的版本修改为16.0,此处主要是映射vs需要的环境
-
如果想在最后的生成项目时进行区分可以修改vsdir文件中的注释,增加上版本内容
-
现在想到文件配置完成需要回到wizard文件中配置当前版本的模板文件,使用记事本打开
Autodesk.arx-2016.props
,修改里面的CAD安装路径,和SDK路径
-
如果配置没有问题我们可以在vs中看到创建类型,双击类型即可创建文件
Hello Word
VC项目需要借助当前版本的rc.exe和cl.exe,因为后期需要多版本所以这里可以直接在项目->属性中设置路径,如果太多参数,可以打开SDK里面的simple编译以下,编译成功之后直接将里面的配置copy过来就可以。下面是我的配置
-
确认平台工具集时2012
-
$(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
-
资源文件我进行了修改,使用项目自带的配置会造成UNICODE和_UNICODE两个宏定义重复引用,如果报错可以修改。vs如果报错无效的标识符,可以收工控制台传递一下参数,将里面报错确实的头文件引用到
附加包含目录
-
到这里就可以编写基本的代码测试,生成成功之后在CAD里面使用
错误汇集
- 报错"cl.exe 已退出" , 此处是应为编译版本未配置,需要安装VS 20**版本进行编译环境配置
- 报错"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的项目文件,引用同一套代码文件,并再不同的版本的文件设置标识符进行多版本代码的编写。