成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

如何制作帶MFC界面的DLL

新建MFC DLL項目在進行基于組件化MFC界面的開發(fā)時,需要將界面封裝到動態(tài)庫中。下面是實現(xiàn)這一過程的步驟:1. 新建MFC DLL項目,項目名稱為“MyDLL”,創(chuàng)建新解決方案,解決方案名稱為“M

新建MFC DLL項目

在進行基于組件化MFC界面的開發(fā)時,需要將界面封裝到動態(tài)庫中。下面是實現(xiàn)這一過程的步驟:

1. 新建MFC DLL項目,項目名稱為“MyDLL”,創(chuàng)建新解決方案,解決方案名稱為“MFCDLL”。

2. 進入MFC DLL向?qū)Вx擇下一步,然后選擇“使用共享MFC DLL的規(guī)則DLL”,最后點擊“完成”按鈕。

3. 創(chuàng)建MFC DLL項目成功后,需要選擇運行時庫。打開屬性-->C/C -->代碼生成-->運行庫,選擇“多線程調(diào)試 DLL (/MDd)”。

添加MFC類并寫導出接口

4. 點擊項目右鍵,選擇“添加”->“添加MFC類”。輸入類名:IHpDllWin,選擇基類:CDialog,點擊完成。

5. 動態(tài)庫將定義一個導出函數(shù),該函數(shù)返回導出界面基類的指針。在IHpDllWin.cpp文件中編寫導出接口:

```cpp

// 定義導出接口

extern "C" __declspec(dllexport) IHpDllWin* ShowDialog(){

// 切記,此處需要加下面這行代碼,不然對話框顯示不出來。

AFX_MANAGE_STATE(AfxGetStaticModuleState());

IHpDllWin *ph new IHpDllWin;

ph->Create(IHpDllWin::IDD);

ph->ShowWindow(SW_SHOW);

return ph;

}

```

生成MFC DLL

6. 生成MyDLL.dll。至此,MFC DLL程序創(chuàng)建完成。

新建MFC應(yīng)用程序

7. 新建MFC應(yīng)用程序,名稱為MyMFC,解決方案名稱為MFCEXE。

8. 進入MFC應(yīng)用程序向?qū)?,點擊下一步,應(yīng)用程序類型選擇“基于對話框”,然后一直點擊下一步,最后點擊完成。

調(diào)用動態(tài)庫

9. 在對話框中拖入按鈕,并雙擊該按鈕進入代碼編輯。

10. 采用動態(tài)方式調(diào)用該動態(tài)庫,調(diào)用步驟如下:

- 加載動態(tài)庫

```cpp

HINSTANCE m_hDll LoadLibrary("MyDLL.dll");

if (NULL m_hDll){

MessageBox("加載 MyDLL.dll 失敗");

}

```

- 獲取導出函數(shù)指針

```cpp

typedef IHpDllWin* (*hpDllFun)();

hpDllFun pShowDlg (hpDllFun)GetProcAddress(m_hDll,"ShowDialog");

if (NULL pShowDlg){

MessageBox("DLL中函數(shù)尋找失敗");

return;

}

```

- 獲取導出類對象指針

```cpp

IHpDllWin* m_hpwin pShowDlg();

```

通過以上步驟,可以獲取導出窗口類指針,從而對該導出窗口進行控制。

完成設(shè)置并運行

11. 將MyDLL.dll拷貝到目標工程的Debug目錄下,并復制IHpDllWin.h到目標工程的目錄下。

12. 添加IHpDllWin.h文件,右鍵點擊目標工程,選擇“添加”->“現(xiàn)有項”,然后選擇IHpDllWin.h,點擊添加。

13. 在MyMFCDlg.cpp頭部添加include "IHpDllWin.h",然后編譯生成exe。至此,主界面設(shè)置完成。

14. 按“Ctrl F5”運行程序,查看運行結(jié)果。

以上就是制作帶MFC界面的DLL的步驟。通過將界面封裝到動態(tài)庫中,可以實現(xiàn)更靈活的開發(fā)和重用界面模塊的功能。

標簽: