MFC導出對話框類DLL的實現

1.新建基於對話框的應用程序
這裏寫圖片描述
這裏寫圖片描述
2.新建MFC DLL工程
這裏寫圖片描述
3.選擇MFC DLL
這裏寫圖片描述
4.選擇擴展Dll選項(重要!!!)
這裏寫圖片描述
5.爲Dll工程添加一個MFC類,基類爲CDialogEx
這裏寫圖片描述
這裏寫圖片描述
6.Dll新建的MFC 類中添加resource.h防止編譯出錯(應爲新建了一個對話框資源)
這裏寫圖片描述
7.將類導出
這裏寫圖片描述
8.編譯Dll,生成Dll文件和Lib文件,將相應頭文件和剛生成的Dll和Lib Copy到測試的應用程序目錄,並在應用程序工程中包含相應頭文件,和添加Lib的目錄,在對話框中添加一個按鈕,添加響應消息,在響應消息函數中添加Dll中的Dlg
這裏寫圖片描述
9.編譯,運行,效果如下
這裏寫圖片描述
在MFC動態鏈接庫中導出全局函數時的做法如下:
在dll相應的頭文件中定義申明導出函數:

extern "C" void __declspec(dllexport) XXX(int i);
  • 1

在cpp文件中定義函數:

void XXX(int i)
{
    CString str;
    str.Format(_T("傳遞的參數是%d。"), i);
    MessageBox(NULL, _T("sss"), _T("ssss"), 0);
}

編譯後將相應的.lib文件copy到測試應用程序的代碼目錄下(重要!!!不然靜態調用時會鏈接出錯)
在調用者中:

#pragma comment(lib,"MFCLibrary1")  
extern "C" void __declspec(dllimport) XXX(int i);
void CMFCDllTestAppDlg::OnBnClickedButton1()
{
    // TODO: Add your control notification handler code here
    int i = 1000;
    XXX(i);

}

效果如下:
這裏寫圖片描述

發佈了156 篇原創文章 · 獲贊 222 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章