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

2021-06-07 12:29:18 字數 3061 閱讀 7522

如果要編寫模組化的軟體,就要對對動態鏈結庫(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標頭檔案:

view source

print?

01.classcdogclass :publiccobject

02.;

12.intgetnum() ;

13.voidsetdata(cstring data) ;

14.cstring getdata() ;

15.};

dogclass.cpp實現檔案:

view source

print?

01.cdogclass::cdogclass()

02.

05.

06.cdogclass::~cdogclass()

07.

09.

10.voidcdogclass::init()

11.

編輯dogclass.h標頭檔案修改下面一行;

view source

print?

1.classafx_ext_class cdogclass :publiccobject

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

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()中新增如下**:

view source

print?

01.cdlgdog dlg;

02.dlg.m_nnum = getnum();

03.dlg.m_sdata = getdata();

04.if(idok==dlg.domodal())

05.

10.return0;

然後編譯dll,會發現有幾個錯誤,不用怕,好解決的,首先,去掉dlgdog.cpp中的 #include 「\ add additional includes here」這一行;其次,在stdax.h中加入include "resource.h",再編譯,ok。

二、建立dll 測試程式

步驟:

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

view source

print?

01.voidctestexportclassdlg::onbutton1()

02.

12.}

從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了。

一步一步實現FormsAuthentic驗證登入

本文不講原理,只講用法,原理性的東西網上特別多,不過還是會對一些要用到的東西進行解釋,不深入講原理。本文中用的是vs2012 net mvc 4.0。原理看這篇文章 看完這個文章絕對受益匪淺。說下登入的整個流程 使用者輸入賬號密碼 點選提交 資料提交到後台控制器 去資料庫取得使用者資料 如果登入成功...

一步一步 Sql Azure

一步一步 sql azure 1.使用 windowsazure 平台賬號登陸 2.新建sqlazure server 3.新建資料庫 4.為sql azure server 新增防火牆規則,只有將本機新增到規則裡才能從本機連線到該sqlazure server 5.連線到sql azure ser...

一步一步帶你實現virtual dom(一)

一步一步帶你實現virtual dom 一 一步一步帶你實現virtual dom 二 props和事件 要寫你自己的虛擬dom,有兩件事你必須知道。你甚至都不用翻看react的源 或者其他的基於虛擬dom的 他們 量都太大,太複雜。然而要實現乙個虛擬dom的主要部分只需要大約50行的 50行 下面...