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