Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9726789
  • 博文数量: 1227
  • 博客积分: 10026
  • 博客等级: 上将
  • 技术积分: 20273
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-16 12:40
文章分类

全部博文(1227)

文章存档

2010年(1)

2008年(1226)

我的朋友

分类: C/C++

2008-03-18 15:46:34

下载本文示例代码
现在很多程序都支持外挂插件,插件可以使程序容易扩展。插件一般来说都是要求有标准接口的。我们在这里做个最简单的插件。插件的结构定义如下:

这个是插件DLL的输出函数,用于创建插件。
BOOL Plug_CreateObject(void ** pobj){
 *pobj = new CMyPlug;
 return *pobj != NULL;
}

插件的基类定义
class CPlugBase {
public:
 CPlugBase(){};

public:
 virtual HICON GetIcon() = 0; //用于显示插件的图标
 virtual void Hello(int k) = 0;  //插件的功能函数。
 virtual void Release() = 0;  //释放插件。
};  
插件的类必须基于CPlugBase,要实现上述三个函数,其他可以任意扩展。

本例子包括一个主程序和两个插件程序。
主程序界面:
这是没有插件时的界面,我们可点击 插件-〉增加 来增加插件,程序弹出
我们输入类别和插件的文件,按OK就可增加一个插件,增加后程序自动增加一个图标:
这个图标就代表刚才的那个插件,同样我们可以再次增加一个插件
我们测试点击一下图标1,
我们测试点击一下图标2
上述两个message是运行了插件的hello函数所显示的。
程序下次启动时,插件已自动增加了,不用再次注册。

上述程序在Win2000 professional + VC6 + SP5 + Platform SDK 2001.11下编译运行通过。
一般安装了vc就可,以前我在VC5+win98做过类似的。
 
下载本文示例代码
阅读(1833) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~