實現MFC擴充套件DLL中匯出類和對話方塊

2021-08-22 06:24:04 字數 1858 閱讀 1786

如果要編寫模組化的軟體,就要對對動態鏈結庫(dll)有一定的了解,本人這段時間在修改以前的軟體時,決定把重複用的類和對話方塊做到dll中,下面就從乙個簡單的例子講起,如何實現mfc擴充套件dll中匯出類和對話方塊。

一、建立mfc擴充套件dll

步驟:

執行visual studio 6.0->file->new...->projects;

選擇mfc extension dll (using share mfc dll) 單擊「finish」;

以上完成建立擴充套件dll的框架,下面接著建立輸出類:

insert-> new class...在開啟的對話方塊中,"class type" 選擇"generic class",class name 中輸入cdogclass(當然你可以用其它的名稱,我喜歡小狗,所有用它了,在"base class"下輸入cobject,然後"ok";為類新增兩個測試用的變數 int m_nnum;cstring m_sdata;完全的類資訊如下:

dogclass.h標頭檔案:

class cdogclass : public cobject

;int getnum() ;

void setdata(cstring data) ;

cstring getdata() ;

};dogclass.cpp實現檔案: cdogclass::cdogclass()

cdogclass::~cdogclass()

void cdogclass::init()

編輯dogclass.h標頭檔案修改下面一行;class afx_ext_class cdogclass : public cobject

以上完成類的建立,下面建立輸出對話方塊;

insert-> resouce...新建立乙個對話方塊,新增兩個編輯框idc_edit1,idc_edit2,然後建立cdlgdog對話方塊類並為兩編輯框新增int m_nnum和cstring m_sdata的變數。

在dogclass.cpp的#include "dogclass.h"下加入#include "dlgdog.h"

在dogclass類中新增int showdlg();函式用來呼叫對話方塊,並在int cdogclass::showdlg()中新增如下**:

cdlgdog dlg;

dlg.m_nnum = getnum();

dlg.m_sdata = getdata();

if (idok==dlg.domodal())

return 0;

然後編譯dll,會發現有幾個錯誤,不用怕,好解決的。

首先,去掉dlgdog.cpp中的 #include 「\ add additional includes here」這一行;其次,在stdax.h中加入include "resource.h",再編譯,ok。

二、建立dll 測試程式

步驟:新建乙個基於對話方塊的mfc應用程式,新增一按鈕idc_button1,並在按鈕事件中新增如如下**:

void ctestexportclassdlg::onbutton1()

}從exportclass檔案目錄拷貝dogclass.h和exportclass.lib檔案到測試程式目錄下;

在testexportclassdlg.cpp中加入#include 「dogclass.h」行;往連線程式的導入庫中新增exportclass.lib,在vs的project->settings下的setting for選擇all configuration.,然後在下面的頁面object/library conttrol中加入exportclass.lib;

別忘了把exportclass.dll複製到系統目錄或當前應用程式目錄;然後編譯就ok了。  

實現MFC擴充套件DLL中匯出類和對話方塊

如果要編寫模組化的軟體,就要對對動態鏈結庫 dll 有一定的了解,本人這段時間在修改以前的軟體時,決定把重複用的類和對話方塊做到dll中,下面就從乙個簡單的例子講起,如何實現mfc擴充套件dll中匯出類和對話方塊。一 建立mfc擴充套件dll 步驟 執行visual studio 6.0 file ...

實現MFC擴充套件DLL中匯出類和對話方塊

一 建立mfc擴充套件dll class cdogclass public cobject int getnum void setdata cstring data cstring getdata dogclass.cpp實現檔案 cdogclass cdogclass cdogclass cdog...

MFC擴充套件DLL中匯出類和對話方塊的實現方法

一般來說,如果要編寫模組化的軟體,就要對對動態鏈結庫 dll 有一定的了解,本人這段時間在修改以前的軟體時,決定把重複用的類和對話方塊做到dll中,下面就從乙個簡單的例子講起,如何實現mfc擴充套件dll中匯出類和對話方塊。程式執行結果如下圖所示 一 建立mfc擴充套件dll 步驟 dogclass...