zoukankan      html  css  js  c++  java
  • X3插件框架发布新版本 1.0.5

    X3 C++ PluginFramework 已发布了一个新版本 V1.0.5,相对于1.0.4的改动有:

    1. 支持插件延迟加载,实际用到插件的接口时才加载插件DLL

    当调用了一个插件的某个接口时才自动加载该插件,首次加载该插件时会将该插件所有CLSID保存到一个XML文件中,下次运行程序时只读入CLSID而不加载插件DLL文件,这样就能加快程序启动速度。

    改动了插件管理器的实现代码,接口和其余插件不受影响。

     

    2. 对于事件驱动机制的观察者插件,也支持延迟加载

    当某个改变事件触发时才去加载相应的观察者插件。

    改动了插件管理器和改变通知管理器的实现代码,接口和其余插件不受影响。

     

    3. 修正了插件管理器的几个不常用功能的缺陷

    1)LoadPlugins支持绝对路径和相对路径;

    2)UnloadPlugin支持不带路径或者只部分路径的文件名;

    3)InitializePlugins初始化插件失败时自动卸载插件;

    4)增加Ix_AppWorkPath接口,可用于自定义程序配置文件和日志文件将保存在哪个目录,例如用于Vista/Win7

     

    插件延迟加载使用说明

    插件延迟加载需要在程序的Config目录下放一个INI文件,在其中指定哪些插件需要延迟加载。

    假如程序为 D:\Bin\Test.exe,则配置文件为D:\Bin\Config\Test.ini,其内容如下:

    [Plugins]
    MyPlugin.plugin.dll==
    Plugin2.plugin.dll==

    这里使用两个等号表示该插件要延迟加载,而仅使用一个等号的配置将用于指定插件加载顺序(以后需要时再实现)。

    这里写的插件文件名将与实际遍历查到的文件进行尾部比较,所以会存在两个部分同名的插件混淆的可能,例如“MyPlugin.plugin.dll”与“OtherMyPlugin.plugin.dll”都能匹配上,要解决这个问题可以在配置中加上路径分隔符,例如:

    [Plugins]
    /MyPlugin.plugin.dll==
    \Plugin2.plugin.dll==

    如果觉得把很多插件都写上太麻烦,可以只写“.plugin.dll==”,这样所有插件都视为延迟加载了。

     

    源码下载地址:https://sourceforge.net/projects/x3c/files/ x3c-1.0.5.zip

    问题和建议可在 https://sourceforge.net/projects/x3c/forums 上提出,谢谢。

  • 相关阅读:
    python 数据类型 转换
    python 爬虫简单优化
    三种方式简单爬取图片
    爬虫简单入门:第一个简单爬虫
    python 数据结构 容器(字典,列表,元组,集合)
    蓝桥杯带分数(难)
    有几个水洼(DFS)
    蓝桥杯横向打印二叉树(不会,好难啊)
    输入不确定数量的数字
    闰年
  • 原文地址:https://www.cnblogs.com/rhcad/p/1951506.html
Copyright © 2011-2022 走看看