MFC DLL封装窗体详细步骤
2015-01-15 15:15
302 查看
一、封装
1. File->Projects->MFC DLL->输入RegularDLL;
2. 选择"MFC扩展DLL"
3. 选择ResourceView视图,再RegularDLL resource目录上右键单击->Insert-> Dialog->New
4. 新窗体删除OK和Cancel,新建一个按钮,窗体的ID改为:IDD_DLL_DIALOG,按钮的ID改为:IDC_HELLO_BUTTON
5. 双击新建的按钮->ok创建新类->类名起名为CDllDialog->双击按钮,输入:
MessageBox("此处调用数据库封装");
6.File->New->C++ Source File->global.cpp,内容如下:
#include "StdAfx.h"
#include "DllDialog.h"
extern "C" __declspec(dllexport) void ShowDlg(void)
{
CDllDialog dllDialog;
dllDialog.DoModal();
}
7.在StdAfx.h文件中添加#include "resource.h"
二、调用
接下来建立一个调用DLL的工程,按钮中加入以下代码就可以调用了。
void CMFCRegularCallDlg::OnButton1()
{
typedef void (*lpFun)(void);
HINSTANCE hDll; //DLL句柄
hDll = LoadLibrary("D:\\CPPPrimerStudy\\DLLStudy\\RegularDLL\\Debug\\RegularDll.dll"); //有空格要加转义字符,或者把lib放在改目录下用相对路径 hDll = LoadLibrary(_T("..\\LOGIN1\\RegularDll.dll"));
if (NULL==hDll)
{
MessageBox(_T("RegularDll.dll未找到"));
}
lpFun addFun; //函数指针
lpFun pShowDlg = (lpFun)GetProcAddress(hDll,"ShowDlg");
if (NULL==pShowDlg)
{
MessageBox(_T("ShowDlg函数没有在DLL中发现"));
}
pShowDlg();
FreeLibrary(hDll);
}
1. File->Projects->MFC DLL->输入RegularDLL;
2. 选择"MFC扩展DLL"
3. 选择ResourceView视图,再RegularDLL resource目录上右键单击->Insert-> Dialog->New
4. 新窗体删除OK和Cancel,新建一个按钮,窗体的ID改为:IDD_DLL_DIALOG,按钮的ID改为:IDC_HELLO_BUTTON
5. 双击新建的按钮->ok创建新类->类名起名为CDllDialog->双击按钮,输入:
MessageBox("此处调用数据库封装");
6.File->New->C++ Source File->global.cpp,内容如下:
#include "StdAfx.h"
#include "DllDialog.h"
extern "C" __declspec(dllexport) void ShowDlg(void)
{
CDllDialog dllDialog;
dllDialog.DoModal();
}
7.在StdAfx.h文件中添加#include "resource.h"
二、调用
接下来建立一个调用DLL的工程,按钮中加入以下代码就可以调用了。
void CMFCRegularCallDlg::OnButton1()
{
typedef void (*lpFun)(void);
HINSTANCE hDll; //DLL句柄
hDll = LoadLibrary("D:\\CPPPrimerStudy\\DLLStudy\\RegularDLL\\Debug\\RegularDll.dll"); //有空格要加转义字符,或者把lib放在改目录下用相对路径 hDll = LoadLibrary(_T("..\\LOGIN1\\RegularDll.dll"));
if (NULL==hDll)
{
MessageBox(_T("RegularDll.dll未找到"));
}
lpFun addFun; //函数指针
lpFun pShowDlg = (lpFun)GetProcAddress(hDll,"ShowDlg");
if (NULL==pShowDlg)
{
MessageBox(_T("ShowDlg函数没有在DLL中发现"));
}
pShowDlg();
FreeLibrary(hDll);
}
相关文章推荐
- MFC Regular DLL封装窗体
- MFC DLL 可以封装MFC的窗体 供别的MFC程序使用
- 在dll中delphi中封装窗体(实例)
- Delphi dll窗体封装
- 在DLL中封装的VCL窗体Tab键响应的问题
- DLL封装MDI窗体(DLL)
- 在DLL动态链接库中封装VCL的MDI子窗体
- 用DLL方式封装MDI子窗体。
- 将MFC Grid control封装为DLL的做法及其在DLL中的使用方法
- 怎样使用ActiveX DLL 来封装窗体Form为DLL文件
- 在dll工程中使用mfc资源,窗体无法弹出如何解决?(文章内容均系转载,读者尚未理解)
- 将MFC Grid control封装为DLL的做法及其在DLL中的使用方法
- 在dll中delphi中封装窗体
- 在DLL中封装的VCL窗体Tab键响应的问题
- 简单而强大的多线程串口编程工具CserialPort类(附VC基于MFC单文档协议通讯源程序及详细编程步骤)
- 将sqlite3编译成给WINCE使用的DLL,并封装成C++的步骤(使用VS2005)
- 用DLL方式封装MDI子窗体是一种常用的软件开发技术
- DLL方式封装MDI子窗体是一种常用的软件开发技术
- 有关DLL中封装的MDI子窗体出现TFont错误的解释
- DLL中封装窗体