程序开发中,我们不可能把所有的功能一次全部实现,那么我们就应该留一些接口出来,让其他的功能以插件的形式添加到我们的程序中,这样我们的程序不用做任何更改就可以添加很多新的功能了。我们常用的软件如excel、photoshop等,都有这些功能,那么该如何实现呢?本文通过一个简单的例子实现。
使用工具:VS2008
使用语言:C++
开发步骤:
1.插件应用程序
1.1新建对话框应用程序
1.2新建基类
1.3添加基类纯虚函数
PlugPeople.h
#pragma once
typedef bool (*LPFNREGISTER)(void**);
class CPlugPeople
{
public:
CPlugPeople(void){};
~CPlugPeople(void){};
virtual void Show(void){};
};
1.4加载动态库并显示效果
界面上添加一个列表,用于显示动态库的路径名
//属性设置
m_list.ModifyStyle(LVS_TYPEMASK,LVS_REPORT & LVS_TYPEMASK | LVS_SINGLESEL);//important for show
DWORD dwStyle = m_list.GetExtendedStyle();
m_list.SetExtendedStyle(dwStyle | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
m_list.InsertColumn(0,_T("PathName"),LVCFMT_LEFT,480,0);
添加一个按钮,用于选择文件夹,并枚举选中文件夹,将动态库路径名显示到列表中