MFC DLL封装窗体详细步骤

一、封装

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);
}

时间: 2024-08-29 08:44:19

MFC DLL封装窗体详细步骤的相关文章

如何制作带MFC界面的MFC DLL

最近在做基于组件化MFC界面的开发,需要把界面封装到动态库中. 一:工程创建步骤 1.创建MFC DLL工程,选择 “在共享 DLL 中使用 MFC”. 2.运行时库选择:c/c++-->代码生成-->运行库  “多线程调试 DLL (/MDd)”. 二:定义导出界面基类 定义导出界面接口类,待导出界面需要继承该接口类,并实现该接口定义的虚函数.如下: class IHpDllWin :public CDialog { public: // 构造函数,ID为窗口资源ID IHpDllWin(i

在CentOS6.4中安装配置LAMP环境的详细步骤

原文:在CentOS6.4中安装配置LAMP环境的详细步骤 本文详细介绍了CentOS6.4系统中安装LAMP服务并对其进行配置的过程,即安装Apache+PHP+Mysql,参照了网上大神的设置,其他Linux发行系统可以参考~ 在本文中部分命令操作需要root权限,输入‘su -’命令后输入密码即可切换root身份. 一.修改设置对安装做准备 1. 防火墙设置 设置/etc/sysconfig/iptables文件允许80端口和3306端口.因为80端口是http协议所使用的端口,如果防火墙

API、Win32 SDK、Win32项目、MFC、Windows窗体应用程序的区别

[原]API.Win32 SDK.Win32项目.MFC.Windows窗体应用程序的区别 首先来看一下每一个术语的定义: API:Application Programming Interface.Windows操作系统提供给应用程序编程的接口, 简称 为API函数. Win32 SDK:SDK(Software Development Kit)中文是软件开发包.则Win32 SDK是Windows 32位平台下的软件开发包,包括了API函数.帮助文档.微软 提供的一些辅助开发工具. Win3

oracle 11g R2 64位 安装详细步骤

(oracle 11g R2 64位 + PLSQLDeveloper安装说明以及PLSQL Developer+ ORCALE11-instantclient-basic-win32-11.2.0.1.0连接oracle 11g R2 64位详细步骤) 第一步: 准备工具 1.oracle 11g R2 64位安装包 2.PLSQL Developer v11.0.2.1766 官方中文版(内含PLSQL Developer安装程序.汉化程序.PLSQL Developer注册程序.PLSQL

图文介绍windows下实现编译ffmpeg工程的详细步骤

本文来自:http://www.cuplayer.com/player/PlayerCode/FFmpeg/2014/0706/1401.html 图文介绍windows下实现编译ffmpeg工程的详细步骤: 1.搭建 MinGW 的编译环境 下载yasm,地址:http://yasm.tortall.net/Download.html 改名为yasm.exe放到C:\WINDOWS\system32 或者 C:\MinGW\msys\1.0\bin文件夹下. 下载 mingw-get-inst

【OpenHW12参赛手记】ZedBoard-自定义IP核实现+PS成功调用【详细步骤+流程介绍+源码】 转载

文章来源 图片无法复制,请看原文 http://www.eefocus.com/jefby1990/blog/13-03/291975_490bc.html [OpenHW12参赛手记]ZedBoard-自定义IP核实现+PS成功调用[详细步骤+流程介绍+源码] 2013-03-07 17:56:30 分享: (图片请点击查看原图) 软件环境:WIN7_64 + ISE 14.4 (system_edition) 硬件:Zedboard.USB-Cable线 搭建图: 经过前几天的学习,查看数据

编译Boost 详细步骤 适用 VC6 VS2003 VS2005 VS2008 VS2010

vs2008编译boost [一.Boost库的介绍] Boost库是一个经过千锤百炼.可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一.Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容.在C++社区中影响甚大,其成员已近2000人. Boost库为我们带来了最新.最酷.最实用的技术,是不折不扣的"准"标准库. Boost库中比较有名的几个库: (1)Regex,正则表达式库: (2)Spirit,LL parse

编译Boost 详细步骤

vs2008编译boost [一.Boost库的介绍] Boost库是一个经过千锤百炼.可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一. Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容.在C++社区中影响甚大,其成员已近2000人. Boost库为我们带来了最新.最酷.最实用的技术,是不折不扣的"准"标准库. Boost库中比较有名的几个库: (1)Regex,正则表达式库: (2)Spirit,LL pars

如何发布一个自定义Node.js模块到NPM(详细步骤)

咱们闲话不多说,直接开始! 由于我从没有使用过MAC,所以我不保证本文中介绍的操作与MAC一致. 文章开始我先假定各位已经在window全局安装了Node.js,下面开始进行详细步骤介绍: 本文本着,以极少的文字说明以及极少的代码书写为原则来给大家演示! 文章中上传的模块不具备任何意义! 一.封装node.js模块时的必须项 1.创建package.json 每一个完整封装的node模块,必须含有一个参数明确的package.json文件! 以下为package.json的最精简配置: { "n