把mfc介面封裝到動態庫中。
一:工程建立步驟
1.建立mfc dll工程,選擇 「在共享 dll 中使用 mfc」。
2.執行時庫選擇:c/c++-->**生成-->執行庫 「多執行緒除錯 dll (/mdd)」。
二:定義匯出介面基類
定義匯出介面介面類,待匯出介面需要繼承該介面類,並實現該介面定義的虛函式。如下:
class ihpdllwin :public cdialog
// 初始化,如客戶端網路環境
virtual void init(const char* svrip,const int port)=0;
// 清理,如客戶端網路環境
virtual void finit()=0;
// 顯示視窗
virtual int showwin()=0;
// 設定引數
virtual void setparam(string p1)=0;
};
該介面類繼承於cdialog,所有匯出的介面也只能是對話方塊,如果需要匯出其他型別視窗類,修改該基類繼承的視窗類。
三:定義匯出介面
動態庫將定義乙個匯出函式,該函式返回匯出介面基類的指標。在外部獲得該匯出介面物件指標,可以對該介面進行操作。如:
// 定義匯出介面
extern "c" __declspec(dllexport) ihpdllwin* getselorgcontrol()
四:呼叫方式
採用動態方式呼叫該動態庫,呼叫步驟如下:
1.載入動態庫
hinstance m_hdll = loadlibrary("selectorgcontrol.dll");
if (null == m_hdll)
2.獲取匯出函式指標
typedef ihpdllwin* (*hpdllfun)();
hpdllfun pshowdlg = (hpdllfun)getprocaddress(m_hdll,"getselorgcontrol");
if (null==pshowdlg)
3.獲取匯出類物件指標
ihpdllwin* m_hpwin = pshowdlg();
獲取匯出視窗類指標,獲取了對該匯出視窗的控制。
4. 嚮導出視窗傳遞引數
5. 呼叫匯出視窗的初始化函式
m_hpwin->init("127.0.0.1",25250);
6. 顯示匯出視窗
m_hpwin->showwin();
五:解除安裝動態庫
在使用完之後,呼叫下面函式解除安裝動態庫:
freelibrary(
m_hdll
);
歡迎介面的製作
1 在歡迎介面 welcome單元 中新增時鐘控制項timer1,設定恰當的interval值,並在其ontimer事件中新增如下 procedure tfrmwelcome.timer1timer sender tobject begin frmwelcome.close timer1.enabl...
Android 啟動介面的製作
直接看例項吧package com.example.textview import android.content.intent import android.os.bundle import android.os.handler public class splashactivity extend...
MFC 自畫介面的總結
通過這個方式,在mainframe 去掉menubar,註冊類,去掉背景畫刷,避免重複重新整理,去掉視窗的其他的屬性,只是設定成乙個白板沒有邊框的視窗 int cmainframe oncreate lpcreatestruct lpcreatestruct 繪製非客戶區的邊框,cwindowdc ...