如何制作带MFC界面的DLL

2025-11-10 20:26:09

1、新建MFC DLL项目,项目名称“MyDLL”,创建新解决方案,解决方案名称为“MFCDLL”。

如何制作带MFC界面的DLL

2、进入MFC DLL向导,选择下一步,选择“使用共享MFC DLL的规则DLL”。点击“完成”按钮。

如何制作带MFC界面的DLL

如何制作带MFC界面的DLL

3、创建MFC DLL项目成功。运行时库选择:属性-->c/c++-->代码生成-->运行库  “多线程调试 DLL (/MDd)”。

如何制作带MFC界面的DLL

如何制作带MFC界面的DLL

4、点击项目右键,添加MFC类。输入类名:IHpDllWin,选择基类:CDialog,点击完成。

如何制作带MFC界面的DLL

如何制作带MFC界面的DLL

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。

如何制作带MFC界面的DLL

8、进入MFC应用程序向导,点击下一步,应用程序类型选择“基于对话框”,然后一直点击下一步,最后点击完成。

如何制作带MFC界面的DLL

如何制作带MFC界面的DLL

如何制作带MFC界面的DLL

9、在对话框中拖入按钮,双击该按钮,进入代码编辑。

如何制作带MFC界面的DLL

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,"ShowDialog");

if (NULL==pShowDlg)

{

 MessageBox("DLL中函数寻找失败");

 return;

}

    3.获取导出类对象指针

        IHpDllWin* m_hpwin = pShowDlg();

        获取导出窗口类指针,获取了对该导出窗口的控制。

如何制作带MFC界面的DLL

11、把MyDLL.dll拷到目标工程的Debug目录下,复制IHpDllWin.h到目标工程的目录下。

12、添加IHpDllWin.h,右键,添加现有项,选择IHpDllWin.h,添加。

如何制作带MFC界面的DLL

如何制作带MFC界面的DLL

13、在MyMFCDlg.cpp头部加入#include "IHpDllWin.h",然后编译生成exe。主界面完成。

14、运行。按“Ctrl+F5”运行,运行结果如图。

如何制作带MFC界面的DLL

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢