设置 ATL 项目文件
COM 包装器可以创建为单独的 DLL,也可以与 ObjectARX 应用程序结合使用。单独的 DLL 允许系统更有效地管理资源;即使无法卸载 ObjectARX 应用程序,它也可以在不需要 COM 对象时释放它们。如果您打算仅支持进程内客户端,则组合 DLL 可能很方便。无论哪种情况,都可以使用 Microsoft Visual C++ ATL 项目设置界面来简化该过程。以下各节提供了适用于这两种类型的包装器的过程:
为 COM 包装器设置项目
此过程为包装应用程序设置基本 COM 框架,包括对象的 IDL 文件和 DLL 外壳。 在下一个过程中,您将添加一个新接口。Microsoft Visual C++ 创建骨架接口定义及其相应的 COM 类。稍后,可以向此接口添加方法和属性。 将 COM 对象和接口添加到项目中
以下过程将项目配置为使用 AutoCAD Automation。 配置 ATL 项目以用于 AutoCAD Automation 界面的步骤
仅当将 ObjectARX 代码与 COM 包装器组合在一起时,才执行下一个过程。 将现有 ObjectARX 应用程序合并到 ATL 项目中
acrxEntryPoint PRIVATE acrxGetApiVersion PRIVATE 在函数中,添加对 case 块的调用,如下所示。(如果您确定您的服务器已注册,则不需要此步骤。acrxEntryPoint()DllRegisterServerkInitAppMsg case AcRx::kInitAppMsg: //unlock the application acrxDynamicLinker->unlockApplication(pkt); acrxRegisterAppMDIAware(pkt); //register ourselves DllRegisterServer(); break; 如果在 () 函数中发生其他初始化或清理,请将此初始化移动到您的 .acrxEntryPointDllMain 注意:在 AutoCAD 2000 或更高版本中,AutoCAD 会尝试调用由标准 AutoCAD 机制加载的任何 ObjectARX 应用程序。因此,将初始化代码放在 中是安全的。但是,将 ObjectARX 应用程序与 COM 服务器组合在一起的已注册 DLL 可以由 AutoCAD 本身或 Windows COM 子系统加载。如果 COM 加载应用程序,则只会调用。因此,通常最好在 中执行 ObjectARX 初始化。DllMainDllMainDllMain DllMain
从“生成”菜单中选择“全部重新生成”以生成组合的 COM 包装器 DLL 文件。 父主题: |
|Archiver|CAD开发者社区
( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-3-14 06:03
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.