`

MFC Regular DLL封装窗体详细步骤

 
阅读更多
转自
http://blog.sina.com.cn/s/blog_4b2169480100d196.html

vc6.0 环境下,将MFC Regular DLL封装窗体在里面。
1. File->Projects->MFC AppWizard(dll)->输入RegularDLL;
2. 选择Regular DLL using shared MFC DLL 和 Yes,please
3. 选择ResourceView视图,再RegularDLL resource目录上右键单击->Insert-> Dialog->New
4. 新窗体删除OK和Cancel,新建一个按钮,窗体的ID改为:IDD_DLL_DIALOG,按钮的ID改为:IDC_HELLO_BUTTON
5. 双击新建的按钮->ok创建新类->类名起名为CDllDialog->双击按钮,输入:
   MessageBox("此处调用数据库封装","陈梵封装");
6.最最重要的一步×××××××××××××××××××××××
  project->Settings 在General选项中选择Use MFC in a Static Library
 
7.File->New->C++ Source File->global.cpp,内容如下:
#include "StdAfx.h"
   #include "DllDialog.h"
   extern "C" __declspec(dllexport) void ShowDlg(void)
   {
  CDllDialog dllDialog;
  dllDialog.DoModal();
   }

8.在StdAfx.h文件中添加#include "resource.h"
9. 打开Resource.h, 内容如下:
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by RegularDll.rc
//
#define IDD_DLL_DIALOG                  1000
#define IDC_HELLO_BUTTON                1000
// Next default values for new objects
//
//#ifdef APSTUDIO_INVOKED
//#ifndef APSTUDIO_READONLY_SYMBOLS
//#define _APS_NEXT_RESOURCE_VALUE        1001
//#define _APS_NEXT_COMMAND_VALUE         32771
//#define _APS_NEXT_CONTROL_VALUE         1001
//#define _APS_NEXT_SYMED_VALUE           1000
//#endif
//#endif
接下来建立一个调用DLL的工程,按钮中加入以下代码就可以调用了。
void CMFCRegularCallDlg::OnButton1()
{
 typedef void (*lpFun)(void);
 
 HINSTANCE hDll;   //DLL句柄 
 hDll = LoadLibrary("D:\\CPPPrimerStudy\\DLLStudy\\RegularDLL\\Debug\\RegularDll.dll");
 if (NULL==hDll)
 {
  MessageBox("RegularDll.dll未找到");
 }
 lpFun addFun;  //函数指针
    lpFun pShowDlg = (lpFun)GetProcAddress(hDll,"ShowDlg");
 if (NULL==pShowDlg)
 {
  MessageBox("ShowDlg函数没有在DLL中发现"); 
 }
    pShowDlg(); 
    FreeLibrary(hDll);
}
分享到:
评论

相关推荐

    MFC规则Regular DLL 例子源码

    本例中的"Regular DLL"是指遵循MFC规范的动态链接库。VC++ 6.0是微软的老版集成开发环境,尽管现在有更新的版本如Visual Studio,但该例子仍然具有学习价值,因为MFC的基本原理和机制并未发生太大变化。 一个MFC ...

    MFC规则DLL(MFC Regular DLL)添加DLLMain()函数方法-(Vc6.0 与 Vc8.0 都适用)

    但是MFC规则DLL中却不提供DLLMAIN()函数,被MFC给封装了,Win32 DLL倒是有DLLMAIN()函数了,可是却用不了MFC,到网上找资料也很少,后来看到了一篇微软MSDN上的文章,不过是英文的(中文翻译的更看不懂了),看了之后...

    MFC规则DLL(详细介绍dll)

    MFC规则DLL详细介绍 MFC规则DLL是指在VC++环境下使用MFC框架编写的动态链接库。它不同于MFC扩展DLL,MFC规则DLL的概念体现在两方面:首先,它是MFC的,意味着可以在这种DLL的内部使用MFC;其次,它是规则的,意味着...

    两种方法封装调用MFC-dll

    在IT行业中,MFC...在提供的"两种方法封装MFC-DLL"文件中,可能包含了示例代码和详细步骤,帮助读者更好地理解和应用这两种封装方法。通过学习和实践,可以加深对MFC-DLL调用的理解,提升软件开发的效率和质量。

    MFC Excel类封装成库DLL(在静态库中使用 MFC)

    接下来,将这些功能封装到DLL中,需要遵循以下步骤: 1. 创建MFC DLL项目:在Visual Studio中选择“新建项目”,然后选择MFC DLL模板,这将生成一个包含MFC支持的DLL工程。 2. 实现Excel功能:在DLL项目中,开发者...

    MFC 扩展DLL(导出类)

    本文将深入探讨MFC扩展DLL(Dynamic Link Library)中的导出类技术,帮助你理解如何创建和使用这类DLL。 MFC扩展DLL与常规DLL的主要区别在于它允许直接使用MFC类。这使得DLL可以包含MFC的成员函数,从而能够更方便...

    MFC的DLL导出类

    本文主要介绍了如何使用MFC扩展DLL来导出类的方法,包括创建MFC扩展DLL的步骤、建立输出类、创建窗口类DLL、编译DLL、建立DLL测试程序等。 MFC扩展DLL是指使用MFC框架创建的动态链接库,可以提供公共接口供其他应用...

    MFC 扩展DLL封装例程

    准备把自绘控件单独封装到DLL类中,尝试使用“使用共享MFC DLL的规则DLL”建立项目,总是无法找到.lib,最终发现应该使用“MFC扩展DLL”类型建立DLL项目。 自带的基本控件都不怎么美观,所以一般开发者都会自定义类...

    MFCDLL0.rar MFC项目封装dll,并完成调用

    MFCDLL0.rar是一个包含MFC(Microsoft Foundation Classes)项目的压缩包,该项目的主要目标是将MFC界面功能封装到一个动态链接库(DLL)中,以便其他应用程序能够方便地调用这些功能。MFC是微软提供的C++类库,用于...

    VS2019 MFC DLL共享动态链接库(MFC 常规库)封装例程非模态调用例程。(里面包含MFC 扩展库何规则库两个例程)

    创建MFC DLL的步骤如下: 1. **启动新项目**:在VS2019中,选择“新建项目”,然后在模板中找到“MFC DLL”类别。这里可以选择“MFC扩展DLL”或“MFC常规DLL”。 2. **定义接口**:对于MFC扩展DLL,需要定义公共...

    MFC扩展DLL例程

    提到的博客《MFC下DLL编程(图解)》应该提供了详细的步骤和示例,可以帮助读者更好地理解MFC扩展DLL的创建和使用方法,包括创建项目、编写代码、构建和调试等环节。 总之,MFC扩展DLL是MFC框架中一种强大的工具,...

    VS2015中用C++创建MFC DLL动态库

    本篇文章将详细介绍如何在VS2015中创建MFC DLL,并在控制台应用程序中调用其功能。 首先,我们需要创建一个MFC DLL项目。在VS2015中,选择“文件”>“新建”>“项目”,在模板列表中找到“Visual C++”>“MFC”,...

    dll封装MFC对话框资源

    在MFC中,创建DLL通常有两种方式:扩展DLL(Extension DLL)和常规DLL(Regular DLL)。扩展DLL主要用于增强MFC应用程序的功能,而常规DLL则可以独立于MFC应用程序使用。 封装MFC对话框资源时,我们需要在DLL中定义...

    调用MFC规则DLL的实例

    一个简单的调用MFC规则DLL的实例,有详细的代码注释和文档说明。欢迎学习编写MFC规则DLL(共享非静态)的同学们下载使用。

    VC++动态链接库编程之MFC扩展DLL

    本文将对VC++动态链接库编程之MFC扩展DLL进行详细的解释和分析。 一、MFC扩展DLL概论 MFC扩展DLL是指使用MFC类库的动态链接库,它可以与MFC规则DLL共存。在MFC扩展DLL中,可以使用MFC类库,并且可以实现从现有MFC...

    MFC调用DLL文件中的对话框.非模态形式

    调用DLL文件中的对话框_一个DLL的能成功_一个DLL不能成功DllDialogTest VS2010写的 一个基于对话框的MFC程序 然后创建两个常规动态DLL文件 在DLL文件中分别添加对话框 一个DLL的对话框能正常调用 另一个不行 均...

    MFC 对话框封装Dll简单实现

    MFC 对话框封装Dll,简单实现,导出接口,导出Class类

    MFC规则DLL的实例

    创建MFC规则DLL的步骤如下: 1. **初始化项目**:打开Visual Studio,选择“新建项目”,在项目模板中找到MFC类别,然后选择"MFC DLL"模板。记得为项目命名,例如"MFCDLLExample"。 2. **选择DLL类型**:在向导中...

    用MFC封装图象处理Dll 用MFC封装图象处理Dll

    通过以上步骤,我们可以成功地使用MFC封装图像处理功能到DLL中,然后在不同的应用程序中轻松调用这些功能。这不仅提高了代码的重用性,还降低了维护成本。记住,关键在于理解DLL的工作原理,以及如何有效地利用MFC...

    MFC扩展DLL

    MFC扩展DLL是Microsoft Foundation Class (MFC)库中的一个重要概念,主要用于创建可重用的类库,这些类库能够与MFC应用程序进行交互。MFC扩展DLL的主要特点是其接口可以是MFC类的,允许用户从现有的MFC类库中派生新...

Global site tag (gtag.js) - Google Analytics