CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2019 开发者帮助

发行说明

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

发行说明

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

API 兼容性

请注意,AutoCAD 2019 版本破坏了二进制兼容性,需要重新编译所有 ObjectARX 应用程序。

开发环境

编译用于 ObjectARX for AutoCAD 2019 版本的项目时,必须使用 Microsoft Visual Studio 2017 Update 2。

连接

链接器是 *23.lib

注册表

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

对本机 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

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

在此版本中,VBA 6.5 已替换为 VBA 7.1。VBA 7.1 专为 Windows 32 位和 64 位操作系统而设计。AutoCAD ActiveX 库已更新,可删除最初为 64 位支持定义的方法和特性。现在,您可能需要根据项目和窗体使用的库和控件来维护 VBA 项目的 32 位和 64 位版本,这类似于构建 ObjectARX 应用程序的 32 位和 64 位版本。

图标透明度支持

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

对 API 的更改AcDbDatabase::saveAs()

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


路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2025-3-5 17:57

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部