如何製作帶MFC介面的DLL,解答如下
新建MFC DLL專案,專案名稱“MyDLL”,建立新解決方案,解決方案名稱為“MFCDLL”。
步驟閱讀.步驟閱讀.3建立MFC DLL專案成功。執行時庫選擇:屬性-->c/c++-->程式碼生成-->執行庫 “多執行緒除錯 DLL (/MDd)”。
步驟閱讀.步驟閱讀.5動態庫將定義一個匯出函式,該函式返回匯出介面基類的指標。在IHpDllWin.cpp寫匯出介面:
// 定義匯出介面
extern "C" __declspec(dllexport) IHpDllWin* ShowDialog()
{
// 切記,此處需要加下面這行程式碼,不然對話方塊顯示不出來。
AFX_MANAGE_STATE(AfxGetStaticModuleState());
IHpDllWin *ph = new IHpDllWin;
ph->Create(IHpDllWin::IDD);
ph->ShowWindow(SW_SHOW);
return ph;
}
6生成MyDLL.dll。MFC DLL程式建立完成。
7新建MFC應用程式,名稱為MyMFC,解決方案名稱為MFCEXE。
步驟閱讀.10採用動態方式呼叫該動態庫,呼叫步驟如下:
1.載入動態庫
HINSTANCE m_hDll = LoadLibrary("MyDLL.dll");
if (NULL == m_hDll)
MessageBox("載入 MyDLL.dll 失敗");
2.獲取匯出函式指標
typedef IHpDllWin* (*hpDllFun)();
hpDllFun pShowDlg = (hpDllFun)GetProcAddress(m_hDll,
如何製作帶MFC介面的DLL,解答如下
新建MFC DLL專案,專案名稱“MyDLL”,建立新解決方案,解決方案名稱為“MFCDLL”。
步驟閱讀.步驟閱讀.3建立MFC DLL專案成功。執行時庫選擇:屬性-->c/c++-->程式碼生成-->執行庫 “多執行緒除錯 DLL (/MDd)”。
步驟閱讀.步驟閱讀.5動態庫將定義一個匯出函式,該函式返回匯出介面基類的指標。在IHpDllWin.cpp寫匯出介面:
// 定義匯出介面
extern "C" __declspec(dllexport) IHpDllWin* ShowDialog()
{
// 切記,此處需要加下面這行程式碼,不然對話方塊顯示不出來。
AFX_MANAGE_STATE(AfxGetStaticModuleState());
IHpDllWin *ph = new IHpDllWin;
ph->Create(IHpDllWin::IDD);
ph->ShowWindow(SW_SHOW);
return ph;
}
6生成MyDLL.dll。MFC DLL程式建立完成。
7新建MFC應用程式,名稱為MyMFC,解決方案名稱為MFCEXE。
步驟閱讀.10採用動態方式呼叫該動態庫,呼叫步驟如下:
1.載入動態庫
HINSTANCE m_hDll = LoadLibrary("MyDLL.dll");
if (NULL == m_hDll)
{
MessageBox("載入 MyDLL.dll 失敗");
}
2.獲取匯出函式指標
typedef IHpDllWin* (*hpDllFun)();
hpDllFun pShowDlg = (hpDllFun)GetProcAddress(m_hDll,