CodeLite Plugin Internal(2)-Load: 插件加载分析

hat_dll_load 上回书说到接口和众插件之间的关系,这里讲讲插件加载的过程。加载点在系统初始化时Framezhong 调用,上次也说过。这里主要是从PluginManager::Load() 说起。首先读取插件配置文件 config/plugins.xml,并将信息保存到std::map<wxString, PluginInfo> m_pluginsInfo中,这个成员m_pluginsInfo是属于PluginManager,这个map保存了插件名称和Pluginfo的映射关系。接着TagManagerST和LanguageST互相赋值。

现在进入重点循环,针对插件目录下的每个./.so文件,会进行1)加载动态库;2)读插件信息;3)加载插件;4)调用插件相关创建toolbar和menu的函数。下面一一详述:

Continue reading CodeLite Plugin Internal(2)-Load: 插件加载分析 - 全文阅读

Code::Blocks中Plugin的实现原理

Generic-plugin转载另一篇不错的代码分析文章,首先Bryan@cbforge(cbforge at gmail dot com)通过阅读CB源代码针对插件的实现有如下一些补充:

1)CB在系统初始化时,在InitFrame时调用MainFrame::ScanForPlugins来调用PluginManager的接口函数实现插件初始化;

2)除了本例中的binary ,CB还支持 ,这是一个轻量级的插件功能,通过来支持;

3) compiler/debugger 实现了对其他编译器、调试器的统一接口;

Continue reading Code::Blocks中Plugin的实现原理 - 全文阅读

Contact us

Admin: Bryan Wu