MFC之dll中调用对话框
来源:互联网 发布:淘宝网货到付款购物 编辑:程序博客网 时间:2024/05/16 15:57
文章出处:
http://blog.csdn.net/rockex/article/details/571758
http://blog.csdn.net/hd498222594/article/details/7030653
一、dll部分
同过VS向导建立一个MFC dll工程,在工程中创建自己的MFC类,来实现将要展示的界面。新建一个cpp工程,添加头文件#include "StdAfx.h"和界面类的头文件,然后使用下面语句来导出
extern "C" __declspec(dllexport) void ShowDlg(void)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CXXDlg dlg;
dlg.DoModal();//实现DLL资源切换的?AFX_MANAGE_STATE(AfxGetStaticModuleState());
}
其中CXXDlg是界面类,必须添加代码AFX_MANAGE_STATE(AfxGetStaticModuleState());
作用:用于模块切换时的状态保护,
1.AfxGetStaticModuleState()指向当前模块状态;
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的名称
- MFC之dll中调用对话框
- ATL写的DLL中调用MFC对话框
- wpf中调用w32的mfc dll 对话框
- ATL写的DLL中调用MFC对话框
- MFC不同dll中对话框的调用问题
- MFC调用对话框dll弹出非模态对话框
- MFC中DLL调用
- MFC中调用DLL
- 调用mfc扩展型dll使用对话框
- MFC程序调用Dll中的对话框资源
- 【框架-MFC】调用dll中的对话框
- 在MFC中调用DLL
- MFC 应用程序调用MFC DLL(里面有对话框)
- 初识DLL之MFC动态调用DLL
- MFC DLL中添加对话框注意事项
- MFC DLL中封装模态对话框
- Win32 DLL和MFC DLL 中封装对话框
- Win32 DLL和MFC DLL 中封装对话框<转>
- mysql 驱动方式实现读写分离
- 浏览器内核、渲染引擎、js引擎
- win10 + linux
- 7Z和rar使用摘录
- CSDN如何查看自己的排名
- MFC之dll中调用对话框
- Web打印的解决方案之证件套打
- 零基础学java语言-中国大学慕课-翁凯老师-第六章习题-数单词长度
- pydicom读取压缩格式的DICOM图像报错的解决方案
- DKNightVersion 夜间模式/白天模式
- tensorboard显示空白
- 透透彻彻IoC
- 十个最值得阅读学习的C开源项目代码
- maven运行原理分析,源码分析