現在很多程序都支持外掛插件,插件可以使程序容易擴展。插件一般來說都是要求有標准接口的。我們在這裡做個最簡單的插件。插件的結構定義如下:
這個是插件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做過類似的。
本文配套源碼