问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何调用MFC dll 来显示其中的对话框

发布网友 发布时间:2022-05-04 23:18

我来回答

1个回答

热心网友 时间:2022-06-27 02:12

一、dll部分
同过VS向导建立一个MFC dll工程,在工程中创建自己的MFC类,来实现将要展示的界面。新建一个cpp工程,添加头文件#include "StdAfx.h"和界面类的头文件,然后使用下面语句来导出

extern "C" __declspec(dllexport) void ShowDlg(void)
{
AFX_MANAGE_STATE(AfxGetStaticMoleState());
CXXDlg dlg;
dlg.DoModal();//实现DLL资源切换的?AFX_MANAGE_STATE(AfxGetStaticMoleState());
}

其中CXXDlg是界面类,必须添加代码AFX_MANAGE_STATE(AfxGetStaticMoleState());
作用:用于模块切换时的状态保护,

1.AfxGetStaticMoleState()指向当前模块状态;

2.当前函数调用结束后原模块的状态自动被恢复;

3.用于DLL中所调用MFC函数、类、资源时的模块状态切换;

也就是说,并不是每一个dll的输出函数前都要调用它,只有在要输出对话框等用到资源时要调用!

dll中资源是共享的用了这个函数的防止不同的进程修改资源产生错误!

缺省情况下MFC使用主应用程序的资源句柄来载入资源模板,而DLL中的资源模板是存在于DLL模板中,因此要使用这一语句切换到

二、调用dll

采用如下代码调用dll并显示界面

typedef void (*lpFun)(void);
HINSTANCE hDll;
hDll=LoadLibrary(L"XX.dll");
if(NULL==hDll)
{
MessageBox(L"加载失败");
}
lpFun addFun;
lpFun pShowDlg=(lpFun)GetProcAddress(hDll,"ShowDlg");
if(pShowDlg==NULL)
{
MessageBox(L"加载失败");
}
pShowDlg();

CloseHandle(hDll);
其中XX.dll为dll的名称
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...二极管 电动车的电瓶因为出于成本考虑,将新旧电瓶混用,因为旧电池内 ... 两个不同容量的蓄电池并联后怎么防止大容量电池向小容量电池放电 工伤后小孩有抚养费吗,会给多少钱 南京工伤死亡子女抚养费标准 邵阳车管所疫情上班吗 2023年验车推迟吗,2023年检车线什么时候上班 全面复工包括黔江车管所不 江宁车管所什么时候复工 疫情期间交警几点下班? 3d和值多少算中奖? 如何在dll中调用一个对话框 长期没有正常性生活对女性生活有影响吗 dll文件怎么使用 调用dll命令如何跳出对话框?谢谢! 长期无性对女的有影响吗 acdsee ultimate 10 简体中文版怎么消除马塞克 羊肉煮什么材料能补肾? 企业所得税交的金额乘以百分之46.2是什么意思 如何删除redis中list的某个值 企业所得税额怎么算 企业所得税税额 增值税纳税金额和企业所得税纳税金额? 22.5充电宝可以用6 A数据线吗 房屋装修灯具安装技巧一般有哪些 装修房子,不吊顶怎么安装吸顶灯? 充电宝是2.1A的输出插囗,用5A充电线给2A5V的手机充电行吗 百思特三万毫安的充电宝,用几A的充电器充电? 充电宝是1.0A,数据线是2.0A,这样子充对手机电池会不会有影响?会不会坏? 充电宝的插头多少A 家庭装修射灯安装方法有哪些 mfc主程序怎么调用dll里面的对话框 现在南航空姐穿的是黑色袜子吗?长筒的还是连裤袜? delphi 写的dll中要如何加入对话框? 怎样在DLL中弹出模态对话框 dll文件怎么用 请帮忙看看,请问,这个空姐穿的连裤袜是薄 win32怎么在dll里写对话框吗 空姐一年四季都穿丝袜,原因为什么让人意外? 血本急求:将对话框放入 DLL 文件当中,在主程序中作为子窗口非模态显示,做完操作后,释放该 DLL 的方法 c#在DLL里写个方法,实现弹出对话框的功能 急!!dll里实时显示数据的对话框 VC 如何实例化Dll内部添加的对话框类 MFC 的应用程序要从dll里导出一个对话框,应该怎样声明及调用? dll是什么文件,干嘛用的啊? mfc里的DLL使用窗口问题 超滤膜过滤的原理是? 如何显示DLL中对话框资源 100Intellect 超滤膜净水器的净化原理 mfc通过调用dll文件弹出对话框时出现中断 超滤膜的原理是什么?孔径与分子量之间有关系吗