日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

VC++6 开发MFC扩展DLL以及MFC DLL可以包含界面

發(fā)布時(shí)間:2025/4/14 c/c++ 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VC++6 开发MFC扩展DLL以及MFC DLL可以包含界面 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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)出;
添加了自己的代碼以后類如下;
頭文件;

class AFX_EXT_CLASS basestation {private:CString baseaddress; //基站位置public:basestation();virtual ~basestation();void setaddress(CString );CString getaddress();};

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ù)值定義;

按鈕代碼;

void CMfcdddDlg::OnButton1() {// TODO: Add your control notification handler code herebasestation base1;base1.setaddress("長安街11號(hào)");m_addr = base1.getaddress();UpdateData(FALSE);testDlg dlg1;dlg1.DoModal(); }

點(diǎn)擊按鈕后運(yùn)行如下;除了調(diào)用到DLL中類;還彈出了DLL中的對(duì)話框;

工程;

總結(jié)

以上是生活随笔為你收集整理的VC++6 开发MFC扩展DLL以及MFC DLL可以包含界面的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。