VC++6 开发MFC扩展DLL以及MFC DLL可以包含界面
VC環(huán)境可以開發(fā)win32 DLL和MFC DLL;下面來開發(fā)一個(gè)MFC DLL;Win7, VC6;
新建一個(gè)MFC exe工程;名為mfcddd;在同級(jí)目錄下新建一個(gè)文件夾,名為mfcbin;
默認(rèn)的exe輸出目錄;
改為如下;
生成exe后;
新建一個(gè)mfc dll工程;名為myddd;
選擇MFC 擴(kuò)展DLL;MFC擴(kuò)展DLL可以導(dǎo)出類;
在dll添加一個(gè)類;
設(shè)置dll和Lib文件輸出路徑;
/out:"…/…/mfcbin/myddd.dll" /implib:"…/…/mfcbin/myddd.lib"
生成類后環(huán)境自己生成了頭文件、CPP文件、構(gòu)造和析構(gòu)函數(shù);
添加自己的代碼;類定義前面添加 AFX_EXT_CLASS ,此表示類可以被導(dǎo)出;
添加了自己的代碼以后類如下;
頭文件;
CPP文件;
basestation::basestation() {}basestation::~basestation() {}void basestation::setaddress(CString addr) {baseaddress=addr; }CString basestation::getaddress() {return baseaddress; }先生成dll看一下;
然后在exe工程;設(shè)置Lib路徑;
把dll中類的頭文件在exe工程中拷貝一份;此頭文件不必再包含 AFX_EXT_CLASS;對(duì)話框的cpp文件包含此頭文件;
exe工程對(duì)話框中添加一點(diǎn)界面;
為按鈕添加一個(gè)單擊消息處理函數(shù);
為編輯框添加一個(gè)成員變量;此成員變量屬于對(duì)話框類;
添加完成員變量;
設(shè)exe為活動(dòng)工程;
構(gòu)建一下;出錯(cuò);找不到myddd.lib;
在對(duì)話框CPP文件頭部添加 #pragma comment(lib, “S:\94\vcprj\mfcbin\myddd.lib”);使用代碼來導(dǎo)入Lib;
按鈕代碼如下;運(yùn)行;調(diào)用了dll中的類;UpdateData(FALSE),把成員變量的值交換到界面的控件上顯示;
如果只需要導(dǎo)出類的話;用Win32 DLL也行;MFC擴(kuò)展DLL還可以包含界面;下面來進(jìn)行;
在DLL工程添加一個(gè)對(duì)話框資源;
為此對(duì)話框新建一個(gè)類;
MFC類帶有基類;前面開發(fā)的類沒有;
設(shè)置此對(duì)話框類為可導(dǎo)出;
構(gòu)建DLL;出現(xiàn)下圖錯(cuò)誤;對(duì)話框頭文件中對(duì)話框的標(biāo)識(shí)符未定義;
包含Resource.h;然后生成DLL;
在exe項(xiàng)目中拷貝一份dll中對(duì)話框類的頭文件;去除AFX_EXT_CLASS;
exe的對(duì)話框cpp文件包含:
#include “basestation.h”
#include “testDlg.h”
編譯一下exe;出錯(cuò);
exe的資源文件添加IDD_DIALOG1的數(shù)值定義;
按鈕代碼;
點(diǎn)擊按鈕后運(yùn)行如下;除了調(diào)用到DLL中類;還彈出了DLL中的對(duì)話框;
工程;
總結(jié)
以上是生活随笔為你收集整理的VC++6 开发MFC扩展DLL以及MFC DLL可以包含界面的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab生成实指数序列、matlab
- 下一篇: VC6生成随机浮点数、C++11的ran