OpenCASCADE:Foundation Classes之插件管理
按插件分发
插件是可以动态加载到客户端应用程序中的组件,不需要直接链接到它。插件不绑定到它的客户端,即插件只知道它的连接机制是如何定义的,以及如何调用相应的服务。
插件可用于:
实现驱动程序的机制,即根据当前事务动态更改驱动程序实现,将处理资源限制在所需的最低限度(例如,只要用户不需要,它就不会在运行时加载任何应用程序服务),
促进模块化开发(应用程序可以提供基本功能,而一些高级功能将在可用时作为插件添加)。
插件在全局通用标识符 ( GUID )的帮助下进行标识。的GUID包括小写字符,并且不能用一个空格结束。
加载后,对插件提供的服务的调用是直接的(客户端以与插件相同的语言实现)。
C++ 插件实现
C++ 插件使用抽象类中定义的函数将服务实现为对象(此抽象类及其带有GUID 的父类是有关在客户端应用程序中实现的插件的唯一信息)。该插件由一个可共享的库组成,该库包括一个名为 Factory 的方法,该方法创建 C++ 对象(客户端无法实例化该对象,因为插件实现不可见)。基础类在Plugin包中提供了一个名为Load()的方法,它使