CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2023 开发者帮助

检索扩展数据

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

检索扩展数据

应用程序可以通过调用函数来获取已注册的扩展数据,该函数类似于 。虽然只返回定义数据,但同时返回定义数据和它请求的应用程序的扩展数据。它需要一个额外的参数 ,用于指定应用程序名称(这与 AutoLISP 不同,在 AutoLISP 中,函数已扩展为接受指定应用程序名称的可选参数)。传递给的名称必须与先前调用到的应用程序注册的应用程序相对应;它们还可以包含通配符。如果参数是指针,则对的调用与调用相同。acdbEntGetX()acdbEntGet()acdbEntGet()acdbEntGetX()apps(entget)acdbEntGetX()acdbRegApp()appsNULLacdbEntGetX()acdbEntGet()

以下示例代码片段显示了检索两个指定应用程序的扩展数据的典型序列。请注意,该参数在链接的结果缓冲区中传递应用程序名称。apps

static struct resbuf    appname2 = {NULL, RTSTR}, 
                        appname1 = {&appname2, RTSTR}, 
                        *working_ent; 
strsave(appname1.rstring, "MY_APP_1"); 
strsave(appname2.rstring, "SOMETHING_ELSE"); 
. 
. 
. 
// Only extended data from "MY_APP_1" and 
// "SOMETHING_ELSE" are retrieved:  
working_ent = acdbEntGetX(&work_ent_addr, &appname1); 
if (working_ent == NULL) { 
    // Gracefully handle this failure.  
    . 
    . 
    . 
} 
// Update working entity groups.
status = acdbEntMod(working_ent); 
// Only extended data from registered applications still in the
// working_ent list are modified.  

如示例代码所示,函数检索到的扩展数据可以通过后续调用来修改,就像用于修改普通定义数据一样。(也可以通过在传递给 的实体列表中定义扩展数据来创建扩展数据。acdbEntGetX()acdbEntMod()acdbEntMod()acdbEntMake()

仅返回特定请求的应用程序的扩展数据可防止一个应用程序损坏另一个应用程序的数据。它还控制应用程序使用的内存量,并简化应用程序执行的扩展数据处理。

注意:由于传递的字符串可以包含通配符,因此应用程序名称“”将导致返回附加到实体的所有扩展数据。apps*acdbEntGetX()

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部