OBjectArxC++升级记录:从浩辰CAD 2021到2023

从浩辰CAD2021到浩辰CAD 2023 升级记录如下:

1.项目mygreta不用修改,即可编译成功。

2.项目blkdll报错如下,LNK1104: 无法打开文件“grxport.lib”。

1>------ 已启动生成: 项目: blkdll, 配置: Debug x64 ------

1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(391,5): warning MSB8028: 中间目录(..\debug\)包含从另一个项目(blkuserdll.vcxproj, tcl.vcxproj, tharx.vcxproj)共享的文件。 这会导致错误的清除和重新生成行为。

1>已完成生成项目“mygreta.vcxproj”的操作。

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

1>已完成生成项目“blkdll.vcxproj”的操作 - 失败。

========== 生成: 成功 0 个,失败 1 个,最新 1 个,跳过 0 个 ==========

配置文件修改如下:


附加包含目录,由:$(GrxSdkDir)\arx\inc,改为:$(GrxSdkDir)\inc\arx
附加库目录,由:$(GrxSdkDir)\lib-x64;,改为:$(GrxSdkDir)\arx\lib-x64;
模块定义文件:$(GrxSdkDir)\arx\inc\AcRxDefault.def;

3.项目: blkuserdll, 配置: Debug x64 ------

1>stdafx.h(112): fatal error C1083: 无法打开包括文件: “arxHeaders.h”: No such file or directory


增加包含目录:$(GrxSdkDir)\arx\inc;


//在GstarCAD规范下,重写readDwgFile modified by zhao_anan 20230801 begin
//Acad::ErrorStatus es = pSourceDwg->readDwgFile(fileName, _SH_DENYNO);
Acad::ErrorStatus es = pSourceDwg->readDwgFile(fileName, AcDbDatabase::kForReadAndAllShare, false, (const wchar_t*)nullptr);
//在GstarCAD规范下,重写readDwgFile modified by zhao_anan 20230801 end
//在GstarCAD规范下,重写readDwgFile modified by zhao_anan 20230801 begin
//Acad::ErrorStatus es = pBlkDb->readDwgFile(dwgFileName, _SH_DENYNO);
Acad::ErrorStatus es = pBlkDb->readDwgFile(dwgFileName, AcDbDatabase::kForReadAndAllShare, false, (const wchar_t*)nullptr);
//在GstarCAD规范下,重写readDwgFile modified by zhao_anan 20230801 end


//在GstarCAD规范下,重写acedSSLength调用参数 modified by zhao_anan 20230801 begin
//long length = 0;
Gsoft::Int32 length = 0;
acedSSLength(sset, &length);
//在GstarCAD规范下,重写acedSSLength调用参数 modified by zhao_anan 20230801 end


//在GstarCAD规范下,重写setFont调用参数 modified by zhao_anan 20230801 begin
//pTextStyle->setFont(m_strFontName, 0, 0, 134, 1); //注意 ;
pTextStyle->setFont(m_strFontName, 0,
	0, Charset::kChineseSimpCharset,
	Gssoft::Gscad::PAL::FontUtils::FontPitch::kDefault,
	Gssoft::Gscad::PAL::FontUtils::FontFamily::kDoNotCare,
	false);
//在GstarCAD规范下,重写setFont调用参数 modified by zhao_anan 20230801 end


//在GstarCAD规范下,重写setFont调用参数 modified by zhao_anan 20230801 begin
//pTextStyle->setFont(strFont_Name, 0, 0, 134, 1); //注意 ;
pTextStyle->setFont(strFont_Name, 0,
	0, Charset::kChineseSimpCharset,
	Gssoft::Gscad::PAL::FontUtils::FontPitch::kDefault,
	Gssoft::Gscad::PAL::FontUtils::FontFamily::kDoNotCare,
	false);
//在GstarCAD规范下,重写setFont调用参数 modified by zhao_anan 20230801 end		


1>c:\users\zhaoanan\source\repos\cad2013-code\blkuserdll\usersystem2.cpp(3897): error C2280: “GcDbViewTableRecord::GcDbViewTableRecord(const GcDbViewTableRecord &)”: 尝试引用已删除的函数

经过浩辰反馈:浩辰2023的grx接口现在是按照arx2020的接口定义,不建议基于浩辰2021进行移植。


https://damassets.autodesk.net/content/dam/autodesk/files/objectarxwizard2024.zip
https://raw.githubusercontent.com/ADN-DevTech/ObjectARX-Wizards/ForAutoCAD2021/ObjectARXWizardsInstaller/ObjectARXWizard2021.zip
https://raw.githubusercontent.com/ADN-DevTech/ObjectARX-Wizards/ForAutoCAD2020/ObjectARXWizardsInstaller/ObjectARXWizard2020.zi


正在升级项目“zndraw”...
正在升级项目“tharx”...
正在升级项目“ugrid”...
正在升级项目“blkdll”...
正在升级项目“blkcad”...
正在升级项目“tinyxml”...
正在升级项目“mygreta”...
正在升级项目“tcl”...
正在升级项目“blkuserdll”...
正在升级项目“znpmt”...
重定目标结束: 10 个已完成,0 个未通过,0 个已跳过


包含目录,引用目录,库目录地址分别为:


$(ArxSdkIncs);$(ArxHlrIncs);$(ArxAmodelerIncs);$(ArxBrepIncs);$(ArxAtilIncs);$(IncludePath)
$(ArxSdkIncs);$(ReferencePath)
$(ArxSdkLibs);$(LibraryPath);$(ArxHlrLibs);$(ArxAmodelerLibs);$(ArxBrepLibs);$(ArxLibIncs)

链接器,输出文件:


$(OutDir)$(ProjectName).arx

链接器,输入附加依赖项:


arx2020依赖项为:
rxapi.lib
acdb23.lib
acge23.lib
acad.lib
ac1st23.lib
accore.lib

arx2013依赖项为:
rxapi.lib
acdb19.lib
acge19.lib
acad.lib
ac1st19.lib
accore.lib

链接器-调试-生成程序数据库文件:


$(OutDir)$(TargetName).pdb


浩辰升级进入新的阶段,就是从arx2013升级到arx2020,再从arx2020升级到浩辰2023。

从浩辰2021升级到浩辰2023是不可行的,从arx2023升级到浩辰2023也是不可行的。

经过两周的刻苦努力,我们完成了基于arx2013移植到了浩辰2021,取得了突破性成果。

为了充分利用现有工作成果,确定了基于浩辰2021强行移植到浩辰2023的路线。

不支持这么做,因为浩辰2023并不是基于浩辰2021的接口定义的。

据反馈,移植浩辰2023,要用vs2017,平台工具集用v141。

浩辰2023是基于arx2020的接口定义,所以最稳健的路线是基于arx2020进行移植。

我们试过基于浩辰2021强行移植到浩辰2023,最终工程的入口都编译不成功,导致该方案彻底失败。

而arx2023的工程,平台工具集必须选择v142,对应的VS版本是2019,这和浩辰2023工具集也不匹配。



   基于浩辰2021强行升级到浩辰2023编译失败
 


   arx2023对应VS2019,工具集为V142
 


   基于平台工具集v141编译arx2023工程失败
 




免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空