永发信息网

如何制作带MFC界面的DLL

答案:1  悬赏:0  手机版
解决时间 2021-12-03 00:02
  • 提问者网友:半生酒醒
  • 2021-12-02 16:01
如何制作带MFC界面的DLL
最佳答案
  • 五星知识达人网友:街头电车
  • 2021-12-02 17:20
如何制作带MFC界面的DLL,解答如下
    新建MFC DLL项目,项目名称“MyDLL”,创建新解决方案,解决方案名称为“MFCDLL”。
    步骤阅读.2进入MFC DLL向导,选择下一步,选择“使用共享MFC DLL的规则DLL”。点击“完成”按钮。
    步骤阅读.步骤阅读.3创建MFC DLL项目成功。运行时库选择:属性-->c/c++-->代码生成-->运行库  “多线程调试 DLL (/MDd)”。
    步骤阅读.步骤阅读.4点击项目右键,添加MFC类。输入类名:IHpDllWin,选择基类:CDialog,点击完成。
    步骤阅读.步骤阅读.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。
    步骤阅读.8进入MFC应用程序向导,点击下一步,应用程序类型选择“基于对话框”,然后一直点击下一步,最后点击完成。
    步骤阅读.步骤阅读.步骤阅读.9在对话框中拖入按钮,双击该按钮,进入代码编辑。
    步骤阅读.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();
            获取导出窗口类指针,获取了对该导出窗口的控制。
    步骤阅读.11把MyDLL.dll拷到目标工程的Debug目录下,复制IHpDllWin.h到目标工程的目录下。
    12添加IHpDllWin.h,右键,添加现有项,选择IHpDllWin.h,添加。
    步骤阅读.步骤阅读.13在MyMFCDlg.cpp头部加入#include "IHpDllWin.h",然后编译生成exe。主界面完成。
    14运行。按“Ctrl+F5”运行,运行结果如图。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯