CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

设置 ATL 项目文件

2022-12-31 12:30| 发布者: admin| 查看: 1937| 评论: 0|来自: AutoCAD

COM 包装器可以创建为单独的 DLL,也可以与 ObjectARX 应用程序结合使用。单独的 DLL 允许系统更有效地管理资源;它可以在不需要 COM 对象时释放它们,即使无法卸载 ObjectARX 应用程序也是如此。如果您打算仅支持进程内客户端,则组合 DLL 可能很方便。在任一情况下,都可以使用 Microsoft Visual C++ ATL 项目设置界面来简化该过程。以下各节提供了适用于这两种类型的包装器的过程:

为 COM 包装器设置项目

  1. 确保axdb.dll(它应该与acad.exe 位于同一目录中)位于搜索路径中。
  2. 在 Microsoft Visual C++ 中,启动一个新的 ATL 项目。
  3. 出现提示时,输入项目名称。
  4. 配置项目以生成 DLL 服务器。其他项目设置是可选的。
  5. 完成项目设置并保存新项目。

此过程为包装器应用程序设置基本 COM 框架,包括对象的 IDL 文件和 DLL 外壳。

在下一过程中,您将添加一个新接口。Microsoft Visual C++ 创建一个框架接口定义及其相应的 COM 类。稍后,可以向此接口添加方法和属性。

向项目添加 COM 对象和接口

  1. 使用 Microsoft 向导界面,添加新的简单 ATL 对象。
  2. 在系统提示时输入C++短名称。

    向导将为其余名称提供默认值。如果需要,可以修改建议的名称。

  3. 在相应的向导页上,选择“支持”。ISupportErrorInfo
  4. 关闭向导。

以下过程将项目配置为使用 AutoCAD 自动化。

配置 ATL 项目以用于 AutoCAD 自动化界面的步骤

  1. 在项目的C++属性中,启用C++例外。
  2. 在项目的链接器设置中,将axdb.liboleaprot.lib 和任何其他引用的 ObjectARX 库添加到链接器依赖项列表中。
  3. 保存属性设置并关闭对话框。

仅当将 ObjectARX 代码与 COM 包装器组合在一起时,才执行下一个过程。

将现有 ObjectARX 应用程序合并到 ATL 项目中

  1. 将 ObjectARX 应用程序中的 CPP 和 H 文件添加到项目中。
  2. 根据 ObjectARX 应用程序添加项目设置以及包含和库路径。
  3. 在项目定义 (DEF) 文件中,将以下行添加到“导出”部分:
acrxEntryPoint        PRIVATE
acrxGetApiVersion     PRIVATE

在函数中,添加一个调用 case 块,如下所示。(如果您确定服务器已注册,则不需要此步骤。acrxEntryPoint()DllRegisterServerkInitAppMsg

case AcRx::kInitAppMsg:
//unlock the application
acrxDynamicLinker->unlockApplication(pkt);
acrxRegisterAppMDIAware(pkt);
//register ourselves
DllRegisterServer();
break;

如果在 () 函数中发生其他初始化或清理,请将此初始化移至 your。acrxEntryPointDllMain

注意:在 AutoCAD 2000 或更高版本中,AutoCAD 会尝试调用由标准 AutoCAD 机制加载的任何 ObjectARX 应用程序。因此,将初始化代码放入其中是安全的。但是,将 ObjectARX 应用程序与 COM 服务器组合在一起的已注册 DLL 可以由 AutoCAD 本身或 Windows COM 子系统加载。如果 COM 加载应用程序,则仅调用。因此,通常最好在 中执行 ObjectARX 初始化。DllMainDllMainDllMain DllMain

从“生成”菜单中选择“全部重建”以生成组合的 COM 包装器 DLL 文件。


路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-5-19 11:59

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部