CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2020 开发者帮助

发行说明

2024-5-18 18:27| 发布者: admin| 查看: 13| 评论: 0|原作者: admin|来自: AutoCAD

发行说明

这些项目与此版本的 ObjectARX 和 AutoCAD 托管类相关。

API 兼容性

AutoCAD 2020 保持与 AutoCAD 2019 的二进制(正向)兼容性,不需要重新编译 ObjectARX 2019 应用程序。

开发环境

编译用于 AutoCAD 2020 的 ObjectARX 项目时,必须使用 Microsoft Visual Studio® 2017 Update 2(版本 15.7.5 及更早版本)。®需要使用 Microsoft .NET Framework 的应用程序应面向 4.7 版本。

连接

链接器是 *23.lib

注册表

注册表已从“R23.0”更改为“R23.1”。

32 位应用程序支持

AutoCAD 2020 开始,不再提供 32 位支持。

图标透明度支持

在 AutoCAD 2017 及更高版本中,不再支持仍使用 RGB 192,192,192 作为背景色的不透明位图图像。建议将这些位图图像转换为透明 PNG 图像。

对 API 的更改AcDbDatabase::saveAs()

从 AutoCAD 2016 开始,无法再使用密码保存 DWG 文件。如果在参数中传递了任何密码信息,密码将被忽略,并将返回错误。pSecParams

支持 Microsoft® Visual Basic® for Application (VBA) 7.1

从 AutoCAD 2014 开始,VBA 6.5 被 VBA 7.1 取代,VBA 7.1 专为 Windows 32 位和 64 位操作系统而设计。由于此更改,AutoCAD ActiveX 库已更新,以删除最初定义为支持 Windows 64 位的方法和特性。依赖于使用 32 位库和控件的 VBA 项目需要更新才能在 AutoCAD 64 位上正常运行。

对本机 C++ ARX 中的 和类型的更改,以及可能的 DWG 文件兼容性问题Adesk::BooleanInt32UInt32

这适用于使用本机 C++ ARX 和 Adesk 命名空间的开发人员。到目前为止,在 Windows 中,该类型已被定义为 int (typedef-ed)。这是出于历史原因,因为早期的编译器不支持本机布尔类型。和 类型分别定义为 long 和 unsigned long。然而,在 Mac 平台上,它一直被定义为 bool,并且一直被定义为 和 。Adesk::BooleanAdesk::Int32UInt32Adesk::BooleanAdesk::Int32UInt32intunsigned int

但是,从此版本开始,Windows 类型与 Mac 类型匹配,因此始终定义为 和 / 始终是整数/无符号整数。请参阅 adesk.h 中的定义。这提供了跨平台的一致性和更好的类型检查。BooleanboolInt32UInt32

仅使用 Adesk 类型的代码不应受到影响。但是,混合使用 Adesk 类型和其他类型(如本机和 或 Win32)的代码可能会遇到一些编译器警告或错误。例如,你可能有一个接受 () 或 () 参数的函数,并且你正在向它传递一个变量。这现在将导致编译器错误,因为变量的类型以前是 int,现在是 bool。解决方法是更改变量类型或函数的 arg 类型,具体取决于哪个在代码中更有意义。intboolBOOLint &int *Adesk::Boolean

一个更微妙的问题涉及 and 方法(参见 dbfiler.h)。这些是“帮助程序”重载,它们将调用转发到较低级别的方法,如 、 等。同样,如果您的代码仅使用 Adesk 类型,那么事情应该像以前一样工作。但是,如果您将变量声明为 type or ,并且您正在调用 and on 它们,则这可能会导致文件兼容性错误。以前,此类调用解析为 和 ,但现在它们将解析为 和 。这将导致 ur 和 calls 读取和写入的二进制数据格式存在差异。请注意,在这种情况下,可能没有任何编译器警告或错误消息。AcDbDwgFiler::writeItem()readItem()writeInt32readBoolintBOOLwriteItemreadItemwriteBooleanreadBooleanwriteInt32readInt32readItemwriteItem

检测此类问题的方法是验证重新生成的代码是否仍能正确读取由以前版本的代码创建的图形文件,反之,验证以前版本的代码是否正确读取由新代码创建的图形文件。如果出现问题,则在打开图形时,您可能会收到来自AutoCAD的警告,指出对象读取不正确。在移植到新的 SDK 版本时,应始终进行此测试,但现在尤为重要。

针对这些问题的建议解决方法是将变量从 or 更改为 type ,或更改为 type 。直接调用较低级别的 etc 方法而不是 和 重载也是一个好主意,只是为了更清楚地说明您的代码正在使用什么类型。intBOOLboolAdesk::BooleanreadInt32writeBooleanreadItemwriteItem


路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-6-27 15:54

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部