CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

检测自定义对象时的需求加载

2023-1-1 06:35| 发布者: admin| 查看: 271| 评论: 0|来自: AutoCAD

加载包含自定义对象的 DWG 或 DXF 文件时,AutoCAD 将确定是否加载关联的应用程序。如果未加载应用程序,并且设置了系统变量 DEMANDLOAD 的第一个位,AutoCAD 将在 Windows 系统注册表中搜索有关应用程序及其加载程序模块的信息。如果 AutoCAD 在系统注册表中找到相应的信息,则会加载应用程序。

注意:检测自定义类时的需求加载仅适用于直接或间接派生的类。AcDbObject

作为一个假设的例子,假设AutoCAD读取由ObjectARX应用程序polysamp(PolySamp Inc.的产品)创建的文件。

  1. 读取图形文件时,AutoCAD 会遇到使用应用程序多边形创建的自定义对象,并确定应用程序未加载。
  2. AutoCAD 发现 DEMANDLOAD 系统变量设置为在代理检测时启用应用程序的需求加载,因此它会在系统注册表的“AutoCAD 应用程序”部分中搜索密钥。在此键中,它找到值,该值定义应加载应用程序的条件。注册表的此部分如下所示:polysampLOADCTRLS

\\HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\ObjectDBX\<VERSION>\Applications\<Application>
            DESCRIPTION:REG_SZ:PolyCad
            LOADCTRLS:REG_DWORD:0xd
            LOADER:REG_SZ:C:\Program Files\polysampinc\polyui.dbx
 
AutoCAD reads the polysamp\LOADER key to determine the directory, path, and file name of the module to be loaded.

然后,AutoCAD 尝试加载 ObjectARX 模块。如果模块成功加载,AutoCAD 会将应用程序的句柄添加到要发送 kLoadDwgMsg 消息的应用程序句柄列表中。然后,AutoCAD 验证应用程序是否已正确加载,并验证自定义类是否已注册。如果应用程序已成功加载,AutoCAD 将继续加载图形文件。如果无法加载 ObjectARX 模块,或者仍然没有可用的类实现,则自定义对象将被视为代理并继续加载。


路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-5-19 16:19

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部