随笔分类 -  C++插件框架

C++ 简易通用插件框架的分析、例子 http://sourceforge.net/projects/x3c/
摘要:轻量级C++插件框架介绍 (C++ Plugin Framework) 正式推出,欢迎使用和反馈意见。 阅读全文
posted @ 2012-02-17 10:36 张云贵 阅读(12416) 评论(22) 推荐(4) 编辑
摘要:https://github.com/rhcad/x3pySVN: https://github.com/rhcad/x3py.git/trunkGIT: git clonegit://github.com/rhcad/x3py.gitC++插件框架 x3py 在下列平台编译测试通过:1、Win7 x64, VC++ 9.0 x64 | VC++ 8.0 x86, Console | Python2.7/3.2 | Perl5 | Java 1.62、Win7 x64, TDM GCC 4 + MSYS + Makefile, Console | Python | Perl | Java (P 阅读全文
posted @ 2011-12-02 10:05 张云贵 阅读(2968) 评论(3) 推荐(0) 编辑
摘要:* Add GetLogObserver() export function in LogWriter.plugin so it can be used by oneself regardless PluginManager. * LogHelper.h: Add X3LOG_GROUP(name) and X3LOG_GROUP2(name, extra). * Add LogHelper2.h for non-plugin projects. * Auto call x3UninitializePlugin() when a plugin is unloading. * Ad... 阅读全文
posted @ 2011-11-22 10:01 张云贵 阅读(3084) 评论(44) 推荐(0) 编辑
摘要:为了避免手工创建新的插件工程,同时也是学习python,今天用了6个小时边学边试,终于编写完了。 学习到的新知识有: 1、正则表达式一次替换多种子串 2、遍历创建目录 3、回调函数 4、路径模块 5、字典的一些用法 6、主函数、编写习惯、递进开发方式 #!/usr/bin/env python"""Function: Create a plugin ... 阅读全文
posted @ 2011-10-09 15:11 张云贵 阅读(1264) 评论(0) 推荐(1) 编辑
摘要:“X3 C++ PluginFramework”框架本周已在 Mac OS X 10.6 下编译通过,至此已能在 Win32/Win64/Linux32/Linux64/MacOSX 上编译运行了,有感兴趣的请下载更新,欢迎留下改进意见代码更新SVN: https://x3c.svn.sourceforge.net/svnroot/x3c/trunk或下载ZIP: http://sourceforge.net/projects/x3c/files/x3c-1.1/ (x3c-1.1.3.zip)已测试的平台有:1、Windows XP/2003/Win7,x86 (1) VC++ 6.0 / 阅读全文
posted @ 2011-08-26 16:35 张云贵 阅读(2527) 评论(8) 推荐(1) 编辑
摘要:今天发布了v1.1.3,可以通过下面任意一种方法获取最新代码: SVN: https://x3c.svn.sourceforge.net/svnroot/x3c/trunk (不包含log4cplus源码和cppunit头文件) 下载zip: http://sourceforge.net/projects/x3c/files/x3c-1.1/ (x3c-1.1.3.zip,包含完整代码) 相对于... 阅读全文
posted @ 2011-08-05 18:39 张云贵 阅读(1519) 评论(5) 推荐(0) 编辑
摘要:下面简单介绍在VC++中如何从零开始编写一个插件。 步骤1:利用VC++向导创建一个工程。 MFC、Win32、COM、ActiveX、EXE工程都可以。 步骤2:设置工程的包含路径,指定X3C的接口头文件路径。 例如添加一个包含路径“..\..\include\x3c”。 我是把x3c的 code\pkg_Core\Interface\ 下的所有文件复制到一个产品软件的 include\x3c\... 阅读全文
posted @ 2011-06-30 19:07 张云贵 阅读(3948) 评论(3) 推荐(0) 编辑
摘要:今天发布了v1.0.11,可以通过下面任意一种方法获取最新代码: SVN: https://x3c.svn.sourceforge.net/svnroot/x3c/trunk (不包含log4cplus源码和cppunit头文件) 下载zip: http://sourceforge.net/projects/x3c/files/ (x3c-1.0.11.zip,包含UML图、CHM、log4cpl... 阅读全文
posted @ 2011-06-28 15:43 张云贵 阅读(913) 评论(12) 推荐(0) 编辑
摘要:图1 PluginLoading 图2 PluginUnloading 图3 CreateObject 图4 EventDriven 图5 InterfaceStruct (No RTTI) 图6 InterfaceStruct (以前版本,使用RTTI) 图7 ModuleRelation 阅读全文
posted @ 2011-06-27 12:41 张云贵 阅读(2363) 评论(2) 推荐(0) 编辑
摘要:昨天thinkhy在Linux 64位上已经编译通过,可以运行。感兴趣的可下载代码验证。 thinkhy: “I have updated source code and compiled successfully in my Linux 64bit eviroment. The programs in UnitTest could run normally.” 可以通过下面任意一种方法获取最新代... 阅读全文
posted @ 2011-06-24 11:10 张云贵 阅读(503) 评论(0) 推荐(0) 编辑
摘要:在1.0.10中加上了命名空间。可以通过下面任意一种方法获取最新代码: 下载: http://sourceforge.net/projects/x3c/files/ (x3c-1.0.10.zip,包含CHM、log4cplus源码、cppunit头文件) SVN: https://x3c.svn.sourceforge.net/svnroot/x3c/trunk (不包含log4cplus源码和... 阅读全文
posted @ 2011-06-16 13:42 张云贵 阅读(500) 评论(1) 推荐(1) 编辑
摘要:这里将网上各位的意见收集起来,后续会逐步考虑实现到新版本中,欢迎大家提出意见。 文件操作部分采用Boost实现跨平台 实现一个轻量级的COM框架: 近几个月内会考虑与COM、脚本语言的集成 加上命名空间,这样在非win平台上使用时不容易冲突:已列入近期计划 采用C实现,用于嵌入式开发:暂无计划 与C#集成:计划今年内解决,谁有好的方法请提出 缺少界面方面的插件:有基于XTP的通用插件,但我觉得还不... 阅读全文
posted @ 2011-06-10 12:57 张云贵 阅读(997) 评论(2) 推荐(1) 编辑
摘要:X3 C++ PluginFramework 今天发布了新版本1.0.9,距离上个版本正好三个月,主要完善内容有: 1、移植到 Linux,加入 Makefile 文件,能够基本运行起来; 2、对内核文件进行局部完善,替换ConfigXml插件,移动整理工程文件,满足Win32、Linux、VC++、CodeBlocks、Makefile 的移植编译要求。 目前 X3 C++ PluginFram... 阅读全文
posted @ 2011-06-03 16:27 张云贵 阅读(1885) 评论(14) 推荐(0) 编辑
摘要:在C++中经常使用匈牙利命名法,这在早期是可理解的,那时开发环境(IDE)没有语法亮显和自动显示变量定义的功能,所以使用匈牙利命名法就能一眼看出变量是什么类型的。说起匈牙利命名法,必须区分匈牙利应用命名法和匈牙利系统命名法,后者在前者基础上发展而来并盖过前者。原始的匈牙利命名法,现在被称为匈牙利应用命名法,由1972年至1981年在施乐帕洛阿尔托研究中心工作的程序员查尔斯·西蒙尼发明。西蒙尼建议的大多数前缀都是自然语义的,其前缀是为了说明变量的应用属性或业务属性,例如“String dogName, manName;”;而匈牙利系统命名法的前缀是为了说明变量的系统属性,比如类型,例如 阅读全文
posted @ 2011-03-08 09:42 张云贵 阅读(5717) 评论(3) 推荐(0) 编辑
摘要:在今天发布的v1.0.6中,增加了Code::Blocks工程文件,采用 Code::Blocks 10.05 + MinGW GCC 4.51 编译,修正了一些代码移植性问题,单元测试工程同时支持MFC对话框方式和非MFC的控制台程序方式。由于部分工程使用了 shlwapi.h 中的函数,在使用GNU GCC编译时无法链接通过,该问题还未解决。另外修正了 PluginManager 的一个问题,在内部比较插件文件名时,忽略文件路径,假定各个插件文件名不相同。该问题由thinkhy报告,感谢thinkhy的代码复审和问题报告。欢迎提出问题和建议。源码下载地址:https://sourcefor 阅读全文
posted @ 2011-02-14 17:17 张云贵 阅读(910) 评论(1) 推荐(0) 编辑
摘要:X3 C++ PluginFramework 已发布了一个新版本 V1.0.5,相对于1.0.4的改动有:1. 支持插件延迟加载,实际用到插件的接口时才加载插件DLL当调用了一个插件的某个接口时才自动加载该插件,首次加载该插件时会将该插件所有CLSID保存到一个XML文件中,下次运行程序时只读入CLSID而不加载插件DLL文件,这样就能加快程序启动速度。改动了插件管理器的实现代码,接口和其余插件不受影响。2. 对于事件驱动机制的观察者插件,也支持延迟加载当某个改变事件触发时才去加载相应的观察者插件。改动了插件管理器和改变通知管理器的实现代码,接口和其余插件不受影响。3. 修正了插件管理器的几个 阅读全文
posted @ 2011-02-11 17:17 张云贵 阅读(1362) 评论(2) 推荐(2) 编辑
摘要:X3 C++ PluginFramework 已在公网开源,地址为:http://www.oschina.net/p/x3http://sourceforge.net/projects/x3c/可在上面网站下载代码,也可使用SVN客户端获取开发中的最新代码,地址为SVN: https://x3c.svn.sourceforge.net/svnroot/x3c/trunk欢迎使用、讨论、报告建议和问题,谢谢。-------------------------------------------------------代号为X3的C++轻量级通用插件框架平台是一套通用的C++轻量级插件体系,采用V 阅读全文
posted @ 2011-01-04 12:29 张云贵 阅读(6826) 评论(2) 推荐(1) 编辑
摘要:X3插件框架是一套通用的C++轻量级插件体系,由多个独立插件模块组成。应用程序可以基于X3插件框架进行快速开发,X3插件框架中的插件既可以单独使用,又可以灵活组合使用。 目前X3插件框架已经完成框架内核,其余通用插件正在扩充之中。X3插件框架已经在方正范围内开放源码。   X3插件框架的WIKI知识库网站为 http://dmkb.hold.founder.com/trac/x3 ... 阅读全文
posted @ 2010-11-12 11:18 张云贵 阅读(1992) 评论(14) 推荐(3) 编辑
摘要:1. 模块使用说明 1.1. 概述 X3插件基础模块是“X3插件框架”的最底层独立模块,用于形成其他插件模块。X3插件框架的设计目标是汇集各种常用的轻量级C++插件通用模块,其插件既能灵活组合到各种系统,又能单独拆开使用。“X3”是开发代号,不是版本号。 X3插件基础模块用于开发具有统一接口标准的C++插件模块,使其具有COM组件的多种特点(接口与实现分离、一个实现类支持多个接口、引用计数管... 阅读全文
posted @ 2010-09-27 16:20 张云贵 阅读(4680) 评论(3) 推荐(2) 编辑
摘要:由于即将开发的C++插件具有相同的标准规范,所以在正式开发插件前,先创建几种常用工程,配置好后就作为其他工程的模板。要创建新的插件工程时,直接复制模板工程的所有文件,替换文件名和内容,就得到新的工程。 VC++ 6.0 工程配置(不使用MFC的普通DLL插件工程) 对于不使用MFC的普通DLL插件工程,使用“Win32 Dynamic-Link Library”向导创建工程,输入模板工程名称(例... 阅读全文
posted @ 2010-08-30 18:38 张云贵 阅读(1644) 评论(1) 推荐(0) 编辑