c++篇 cad.arx配置1.Win10环境配置vs05+arx08再移植到vs10上面再vs19敲代码

本篇文章若含有错误,则不再更新,因为我决定让大家一起写此篇文章,在gitee这里: https://gitee.com/inspirefunction/ObjectArxLog

安装

安装环境

  1. Acad2008

  2. vs2005

  3. vs2010,vs2010sp1(补丁)

  4. vs2019(最终会在这里敲代码)
    这里要安装MFC,如下:
    通用Windows平台开发

    适用于最新v142生成工具的C++ ATL(x86和...
    适用于最新v142生成工具的C++ MFC (x86...
    Windows通用CRT SDK
    MSVC v140 - vS 2015C++生成工具(v14.00)
    .NET Framework 3.5开发工具
    C++ ATL v141生成工具(x86 & x64)
    C++ MFC v141生成工具(x86 & x64)
    C++ v14.20 ATL for v142生成工具(x86 & x64)
    C++ v14.20 MFC for v142生成工具(x86和x64)

  5. 非必要的vs插件:

    Visual AssistX 番茄助手,我用是人家翻译的一个中文版,这个是用来敲代码的时候有个提示...

    GhostDoc_v4.9 ///可以快速出现头函数注释

    IndentGuide 令代码括号有条参照线...

安装ObjectArx SDK

SDK和wizards(vs向导)和地址:
忘记从什么时候开始cad的wizards和sdk分离的,向导文件给vs直接创建一个arx工程用的.
仅仅为了方便,并不是必须,可能因此桌子把他们分离了.
而浩辰中望等等没有wizards的,所以你必须掌握没有wizards来创建一个工程.

向导文件的说明:
{
向导文件的下载地址: https://www.autodesk.com/developer-network/platform-technologies/autocad
拖拉到arx最下面
Tools
ObjectARX Wizards and AutoCAD .NET Wizards for AutoCAD and Visual Studio
ARX位置下载.

 向导文件的github开源地址: https://github.com/ADN-DevTech/ObjectARX-Wizards   

}

我看了一下github上面也有一个2000-2015sdk的工程: https://github.com/kevinzhwl/ObjectARXCore

2021-64位版本
2021-向导

2020-64位版本
2020-向导

2019-32位和64位版本
2019-向导

2018-32位和64位版本
2018-向导

2017-32和64位版本
2017-向导

2016-32和64位版本

2015-32和64位版本

2014-32位和64位版本
2014-帮助文件

2013-32位和64位版本
2013-帮助文件

2012-32位和64位版本

2011-32位和64位版本

2010-32位和64位版本

2009-32位和64位版本

2008-32位版本
2008-64位版本

2007-Core
2007-SDK

2006-Core
2006-SDK

2005-Core
2005-SDK

2004-Core
2004-SDK

2002-Core
2002-SDK

2000-Core

2000-SDK

R14-SDK

安装向导ObjectArx 2008 ObjARXWiz

ObjectArx 2008 SDK是一些可以直接引用的文件,而wizards是安装在vs,方便新手入门学习.(如果此时你需要非向导配置工程,参考我写的Grx配置篇)

先做一个.reg注册表文件,加入下面的语句,然后运行这个注册表.

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Msi.Package\shell\runas]
@="以管理员运行"
[HKEY_CLASSES_ROOT\Msi.Package\shell\runas\command]
@="msiexec /i \"%1\""

然后打开 C:\ObjectARX 2008\utils\ObjARXWiz 目录(其他高版本的SDK要另外下载这个向导的,我仍然喜欢放在.\utils\ObjARXWiz目录下)

再右键管理员模式运行ArxWizards.msi

img

这样在新建C++项目的时候会出现ObjectARX项目,

如果新建出错,也就是你没有按照上面修改注册表管理员方式安装.

系统变量

img

修改系统环境变量,增加cad的路径和SDK路径到里面去,这样可以很大程度方便其后的配置...

尤其是工程在不同的人手上打开的时候能够正确识别.(公司化),防止在工程上面将路径写死...

注意一定要\结尾....

ACAD2008      C:\Program Files (x86)\AutoCAD 2008\
ACAD2008SDK   G:\sdkAndvc\ObjectARX\ObjectARX 2008\

其他版本的SDK路径请你自行设置.

这样就可以在vs工程属性页中填入并识别上,即使是vs2005都是可以的.

img

vs2010+才可以通过内置的宏浏览器找对应的路径.

img

测试工程

img

img

img

这些是当前的项目设置:
您注册的开发人员符号:
纯ObjectARX应用程序
没有MFC支持
不是COM服务器
不是.NET混合管理模块
从任何窗口单击完成以接受当前设置。
创建项目后,请参阅项目的readme.txt文件,了解有关生成的项目功能和文件的信息。
实现_DEBUG预处理器符号
选择此选项可在调试项目配置中定义预处理器符号_DEBUG。 如果选择此选项,向导将在StdAfx.h中创建通常的_DEBUG解决方法,但在定义此符号时,不应包含Microsoft / Autodesk头。

输入你喜欢的前缀,然后是不是DEBUG.我先不勾

img

项目类型:
ObjeCtARX(AutoCAD扩展名)
选择此选项可创建标准的ObjectARX应用程序
以便在AutoCAD中加载AutoCAD项目。

ObjectDBX(自定义对象启用程序)
选择此选项可创建标准的ObjectDBX自定义对象启用程序应用程序。自定义对象启用码应用程序定义自定义对象和自定义实体可以加载到所有RealDWG主机应用程序中,如AutoCAD/VoloView

第一个功能就是普通的功能,第二个是自定义图元用的.先用第一个入门吧.

img

附加SDK:
OMF应用程序支持
选择此选项将强制向导创建OMF符合规范。
OMF 5.0版
OMF 5.x系列

地图API支持
选择此选项将强制向导包含映射标题和库。
地图2007 SDK
地图Spago SDK

都不选,下一步

img

MFC支持:
无MFC支持
具有静态链接的MFC的常规DLL。
使用MFC共享DLL的常规DLL
使用MFC共享DLL的扩展DLL(建议用于MFC支持)
团AutoCAD MFC扩展支持

MFC就是微软画面板的支持,所以要打钩.

img

COM服务器选项:

不是COM服务器:
实现COM服务器
   使用ATL实现COM服务器(推荐)
     对自定义对象使用ObjeCtARX AIL扩展

COM客户端选项:
导入QbjectDBX COM接口
导入AutoCAD COM接口

为了获取cad变量方便,导入cad的com接口.

img

对.net的支持,我虽然有net工程,但是这步我先不勾,日后再看看怎么改支持.

这样就可以了,按Finish完成.

按道理来说,现在你可以直接生成文件验证配置是否正确.....

若出现 .h(头文件) 不正确,你需要进行一次手动配置的检查.

1>d:\桌面\arxproject1\arxproject1\stdafx.h(97) : fatal error C1083: 无法打开包括文件:“arxHeaders.h”: No such file or directory

说明缺少配置:

img

"$(ACAD2008SDK)inc-win32"$(ACAD2008)acad.exe

若出现 .lib(静态链接库) 不正确,例如:

1>LINK : fatal error LNK1104: 无法打开文件“rxapi.lib”

说明缺少配置:

img

$(ACAD2008SDK)lib-win32

添加命令

点击工具栏向导

img

img

右击,添加命令,一般来说改名称就好了.

然后在入口点 acrxEntryPoint.cpp 可以看见加入的命令.

img

其实那个a>的添加命令就是添加了这几句而已,可能是因为宏难找的原因吧......再添加一个试试吧..

img

嘿嘿.然后再试试复制粘贴,再看看a>内是不是有?所以可以摆脱用a>了呢!

img

加入警告语句:

AfxMessageBox(_T("this is a test command0."));

加载.arx

到这个的项目文件夹 win32\debug 目录中找到.arx拖入CAD界面加载,或ap加载.再输入自己的命令就能运行了.

注意vs工程有很多win32,x64文件夹,因为微软就是那么奇葩...具体可能要了解一下vs的宏命令,设置输出的路径..

到此为止,vs2005的arx工程就算是OJBK了..

不过,你是否嫌弃拖入加载和ap加载都很麻烦?

[调试]/[命令参数] 这个/ld就是load的意思,所以直接F5启动调试,就会自动加载了.

img

需要注意几点:

1,在[调试]/[命令参数]上面,vs2005不用/nologo也没问题,

但是vs2010即使设置了[链接器]/[取消显示启动版权标识] 但是依然会有显示,

所以为了统一不显示,就都带上,调试时候才没有徽标.

2,在[调试]/[命令参数]上面, /ld 后面的路径必须是[链接器]/[输出文件]上面填写的路径,但是[输出文件]上面不能用引号...[命令参数]这里不用引号就会导致启动cad之后不自动加载,所以这里又必须带引号...

移植到vs2010

先安装一个 Daffodil.ENU 详情看下面e大的文章:

  1. ObjectARX多版本批量编译
  2. VS2010编译更高平台objectARX程序
  3. ObjectARX开发环境搭建工具条问题修复

用vs2010打开刚刚的vs2005工程,选择更新;

右击工程属性,所有配置,所有平台,修改拓展名为.arx,修改平台集.

img

1:选择v80工具集(没有的话,说明你没有看e大的文章)

2:如果没有配置后缀名,会出现这样错误,修改你的生成后缀名[配置属性]/[常规]/[目标拓展名]:arx

1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(990,5): warning MSB8012: TargetPath(D:\桌面\JJBoxArx2008\Win32\Debug\JJBoxArx2008.dll) 与 Linker 的 OutputFile 属性值(D:\桌面\JJBoxArx2008\Win32\Debug\JJBJJBoxArx2008.arx)不匹配。这可能导致项目生成不正确。若要更正此问题,请确保 $(OutDir)、$(TargetName) 和 $(TargetExt) 属性值与 %(Link.OutputFile) 中指定的值匹配。

若刚刚在vs2005设置过,以下仅需检查一下.

[配置属性]/[C/C++]/[附加包含目录]:

img

[配置属性]/[链接器]/[常规]/[附加库目录]:

img

否则出现 LNK1104: 无法打开文件

[链接器]/[输入]/[附加依赖项]

(注意一下,vs2005写法)rxapi.lib acdb17.lib acge17.lib acad.lib acedapi.lib (注意一下,vs2010写法)rxapi.lib;acdb17.lib;acge17.lib;acad.lib;acedapi.lib 

还是无法打开的话

vs2005就去看看[工具]/[选项]/[项目和解决方案]/[vc++目录]vs2010就去看看右击项目配置属性/[vc++目录] 包含文件/包含目录 加入  D:\ObjectARX 2008\inc库文件/库目录    加入  D:\ObjectARX 2008\lib

错误 error C1083: 无法打开包括文件:“map”: No such file or directory

用于“编辑并继续”的程序数据库 (/ZI)设为空,删除->  公共语言运行时支持 (/clr)启用c++异常    是 (/EHsc)基本运行时检查->默认值调用约定写入->    __cdecl (/Gd)

三、包含文件 这个做法在vs2010已经没有了, [工具]/[选项]/[项目和解决方案]/[VC++目录],如图所示:

包含文件(添加图中前两个目录即可) (这里的路径可自行设置到环境变量的路径)

D:\ObjectARX 2008\incD:\ObjectARX 2008\utils\brep\inc

img

库文件(这里的路径可自行设置到环境变量的路径)

D:\ObjectARX 2008\libD:\ObjectARX 2008\utils\brep\lib

img

vs2019敲代码

由于番茄助手不太好用的关系,所以我最后在vs2019打开vs2010的工程是不会提示升级的,

所以可以利用vs2019来敲代码.而且直接利用vs2019也可以调试cad2008,妙~

20210201根据环境变量的配置修理了一遍教程图片

20210618修改c++篇 cad.arx 自定义实体之编译第一个项目(甜头)时候修改了部分内容

(完)

posted @ 2020-05-01 14:47  惊惊  阅读(930)  评论(0编辑  收藏  举报