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


    安装

    一 首先安装好 cad2008

    vs2005

    vs2010,vs2010sp1(补丁)

    vs2019(最终会在这里敲代码)

     

    二 下载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
        为了方便,以下地址我已经拷贝对应的位置
    }
    
    2021-64位版本
    http://download.autodesk.com/esd/objectarx/2021/objectarx_for_autocad_2021_win_64bit_dlm.sfx.exe
    2021-向导
    https://github.com/ADN-DevTech/ObjectARX-Wizards/raw/ForAutoCAD2021/ObjectARXWizardsInstaller/ObjectARXWizard2021.zip
    
    2020-64位版本
    http://download.autodesk.com/esd/objectarx/2020/objectarx_for_autocad_2020_win_64_bit.sfx.exe
    2020-向导
    https://github.com/ADN-DevTech/ObjectARX-Wizards/raw/ForAutoCAD2020/ObjectARXWizardsInstaller/ObjectARXWizard2020.zip
    
    2019-32位和64位版本
    http://download.autodesk.com/esd/objectarx/2019/Autodesk_ObjectARX_2019_Win_64_and_32_Bit.sfx.exe
    2019-向导
    http://damassets.autodesk.net/content/dam/autodesk/www/adn/files/ObjectARXWizard2019.zip
    
    2018-32位和64位版本
    http://download.autodesk.com/esd/objectarx/2018/Autodesk_ObjectARX_2018_Win_64_and_32_Bit.sfx.exe
    2018-向导
    http://images.autodesk.com/adsk/files/ObjectARXWizards-2018.zip
    
    2017-32和64位版本
    http://download.autodesk.com/esd/objectarx/2017/Autodesk_ObjectARX_2017_Win_64_and_32_Bit.sfx.exe
    2017-向导
    http://images.autodesk.com/adsk/files/ObjectARXWizards-2017.zip
    
    2016-32和64位版本
    http://download.autodesk.com/esd/objectarx/2016/Autodesk_ObjectARX_2016_Win_64_and_32_Bit.exe
    
    2015-32和64位版本
    http://download.autodesk.com/esd/objectarx/2015/Autodesk_ObjectARX_2015_Win_64_and_32_Bit.exe
    
    2014-32位和64位版本
    http://download.autodesk.com/esd/objectarx/2014/Autodesk_ObjectARX_2014_Win_64_and_32Bit.sfx.exe
    2014-帮助文件
    http://download.autodesk.com/esd/objectarx/2014/Autodesk_ObjectARX_2014_Documentation.sfx.exe
    
    2013-32位和64位版本
    http://download.autodesk.com/esd/objectarx/2013/ObjectARX_2013_Win_64_and_32Bit.exe
    2013-帮助文件
    http://download.autodesk.com/esd/objectarx/2013/ObjectARX_2013_Documentation.exe
    
    2012-32位和64位版本
    http://download.autodesk.com/esd/objectarx/2012/ObjectARX_2012_Win_64_and_32Bit.exe
    
    2011-32位和64位版本
    http://download.autodesk.com/esd/objectarx/2011/ObjectARX_2011_Win_64_and_32Bit.exe
    
    2010-32位和64位版本
    http://download.autodesk.com/akdlm/esd/dlm/objectarx/ObjectARX_2010_Win_64_and_32Bit.exe
    
    2009-32位和64位版本
    http://download.autodesk.com/esd/objectarx/2009/ObjectARX_2009_Win_64_and_32Bit.exe
    
    2008-32位版本:
    http://download.autodesk.com/esd/objectarx/2008/ObjectARX_2008_32Bit.exe
    2008-64位版本:
    http://download.autodesk.com/esd/objectarx/2008/ObjectARX_2008_64Bit.exe
    
    2007-Core
    http://download.autodesk.com/esd/objectarx/2007/Arx_Core.exe 
    2007-SDK
    http://download.autodesk.com/esd/objectarx/2007/Arx_All.exe
    
    2006-Core 
    http://download.autodesk.com/WebPub/autocad/oarx2006/Arx_Core.exe 
    2006-SDK 
    http://download.autodesk.com/WebPub/autocad/oarx2006/Arx_All.exe
    
    2005-Core 
    http://download.autodesk.com/WebPub/Developer/autocad/Arx_Core2005.exe 
    2005-SDK 
    http://download.autodesk.com/WebPub/Developer/autocad/Arx_All2005.exe 
    
    2004-Core
    http://download.autodesk.com/WebPub/autocad/oarx/arx_core.exe 
    2004-SDK 
    http://download.autodesk.com/WebPub/autocad/oarx/arx_sdk.exe
    
    2002-Core 
    http://download.autodesk.com/pub/objectarx/objectarx_2002/K030.arx.plus.core.zip 
    2002-SDK 
    http://download.autodesk.com/pub/objectarx/objectarx_2002/K030.arx.plus.all.zip 
    
    2000-Core 
    http://download.autodesk.com/pub/objectarx/ObjectArxCore.exe 
    2000-SDK 
    http://download.autodesk.com/pub/objectarx/ObjectArxSDK.exe 
    
    R14-SDK 
    http://download.autodesk.com/Pub/developer/sdk/obarxsdk.exe
    View Code

    三 安装ObjectArx 2008 ObjARXWiz

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

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

    Windows Registry Editor Version 5.00
    [HKEY_CLASSES_ROOTMsi.Packageshell
    unas]
    @="以管理员运行"
    [HKEY_CLASSES_ROOTMsi.Packageshell
    unascommand]
    @="msiexec /i "%1""

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

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

      

    这样在新建C++项目的时候会出现ObjectARX项目,如果新建出错,也就是你没有按照上面修改注册表管理员方式安装.

     

    系统变量

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

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

    注意一定要结尾....

    ACAD2008 C:Program Files (x86)AutoCAD 2008

    ACAD2008SDK G:sdkAndvcObjectARXObjectARX 2008_32

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

    这样就可以在vs工程属性页中填入并识别上,即使是vs2005都是可以的...后面教程所有的路径都会以此为范例...

      

    测试工程

      

     

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

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

      

     

    项目类型:
    ObjeCtARX(AutoCAD扩展名)
    选择此选项可创建标准的ObjectARX应用程序
    以便在AutoCAD中加载AutoCAD项目。
    
    ObjectDBX(自定义对象启用程序)
    选择此选项可创建标准的ObjectDBX自定义对象启用程序应用程序。
    自定义对象启用码应用程序定义自定义对象和自定义实体可以加载到所有RealDWG主机应用程序中,
    如AutoCAD
    /VoloView

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

     

    附加SDK:
    OMF应用程序支持
    选择此选项将强制向导创建OMF符合规范。
    OMF 5.0版
    OMF 5.x系列
    
    地图API支持
    选择此选项将强制向导包含映射标题和库。
    地图2007 SDK
    地图Spago SDK

    都不选,下一步

     

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

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

     

    COM服务器选项:
    
    不是COM服务器:
    实现COM服务器
       使用ATL实现COM服务器(推荐)
         对自定义对象使用ObjeCtARX AIL扩展
    
    COM客户端选项:
    导入QbjectDBX COM接口
    导入AutoCAD COM接口

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

     

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

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

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

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

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

    说明缺少配置:

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

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

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

    说明缺少配置:

    $(ACAD2008SDK)lib-win32

      

    添加命令

    点击工具栏向导

     

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

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

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

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

    加入警告语句:  

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

     

    加载.arx 

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

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

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

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

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

    需要注意几点:

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

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

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

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

      

    移植到vs2010:

    先安装一个 Daffodil.ENU 详情看下面两篇e大的文章:
    也谈ObjectARX多版本批量编译
    再谈VS2010编译更高平台vs2012(v110),vs2015(v140)的objectARX程序
    ObjectARX开发环境搭建之VS2010+ObjectARX2012Wizard+Addin工具条问题修复

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

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

      

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

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

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

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

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

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

    否则出现 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 2008inc
    库文件/库目录    加入  D:ObjectARX 2008lib

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

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

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

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

    D:ObjectARX 2008inc
    D:ObjectARX 2008utilsrepinc

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

    D:ObjectARX 2008lib
    D:ObjectARX 2008utilsreplib

    敲代码

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

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

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

    (完)

  • 相关阅读:
    a==null和a.equals("null")的区别
    PHP_EOL换行符
    mysql 重启
    异或的用法
    so easy(并查集+unordered_map)
    牛客练习赛51 C 勾股定理
    Period II
    Simpsons’ Hidden Talents
    POJ-1961 Period
    poj-2406 Power Strings
  • 原文地址:https://www.cnblogs.com/JJBox/p/12813502.html
Copyright © 2020-2023  润新知