如何给自己的程序增加插件功能-用DLL做插件
2008-03-20 15:11
351 查看
下载例子源代码
原文链接:http://www.vckbase.com/vckbase/vckbase12/vc/nonctrls/atlcomocx_02/1202008.htm
现在很多程序都支持外挂插件,插件可以使程序容易扩展。插件一般来说都是要求有标准接口的。我们在这里做个最简单的插件。插件的结构定义如下:
这个是插件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做过类似的。
原文链接:http://www.vckbase.com/vckbase/vckbase12/vc/nonctrls/atlcomocx_02/1202008.htm
现在很多程序都支持外挂插件,插件可以使程序容易扩展。插件一般来说都是要求有标准接口的。我们在这里做个最简单的插件。插件的结构定义如下:
这个是插件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做过类似的。
相关文章推荐
- 如何给自己的eclipse插件增加trace功能
- Three.js如何用轨迹球插件(trackball)增加对模型的交互功能详解
- [前端插件]为自己的博客增加打赏功能
- 如何在自己的php项目中加一个插件功能
- 想自己用C#写程序,主要功能是对其他的程序进行打包,如何实现,求高手指教!!!
- [前端插件]为自己的博客增加打赏功能
- 如何为ios程序增加itunes同步功能
- 发现Windows程序 最主要的还是要理解消息和窗口的相互调用,相互影响是如何实现的,才能更准确的去理解Windows程序,去编好自己想要的程序功能
- 如何在自己的程序中加入宏的功能
- 给自己的程序增加网页浏览功能
- 开通微信小程序插件,如何开通小程序插件功能——玩转小程序118
- 给自己的程序增加网页浏览功能(续)
- 如何为ios程序增加itunes同步功能
- 给自己的程序增加网页浏览功能
- 如何为ios程序增加itunes同步功能
- 用INNO SETUP做安装程序时,如何自动注册一个自己开发的DLL文件??
- 关于.net编译过后的程序增加功能的一种实现方式_也可以说是.net exe注入,插件机制_开发记录
- linux如何实现开机加载完图形界面后自动运行自己写的一个程序
- iOS如何给模拟器增加照片(附带程序)
- .NET: 如何通过AppDomain动态加载插件程序