製作帶MFC介面的MFC DLL

2021-06-22 04:37:08 字數 1517 閱讀 6408

把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 ...