`
conkeyn
  • 浏览: 1525026 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

MFC规则DLL 概述

阅读更多

MFC规则DLL的概念体现在两方面:

  (1) 它是MFC的

  “是MFC的”意味着可以在这种DLL的内部使用MFC;

  (2) 它是规则的

  “是规则的”意味着它不同于MFC扩展DLL,在MFC规则DLL的内部虽然可以使用MFC,但是其与应用程序的接口不能是MFC。而MFC扩展DLL与应用程序的接口可以是MFC,可以从MFC扩展DLL中导出一个MFC类的派生类。

  Regular DLL能够被所有支持DLL技术的语言所编写的应用程序调用,当然也包括使用MFC的应用程序。在这种动态连接库中,包含一个从CWinApp继承下来的类,DllMain函数则由MFC自动提供。

  Regular DLL分为两类:

  (1)静态链接到MFC 的规则DLL

  静态链接到MFC的规则DLL与MFC库(包括MFC扩展 DLL)静态链接,将MFC库的代码直接生成在.dll文件中。在调用这种DLL的接口时,MFC使用DLL的资源。因此,在静态链接到MFC 的规则DLL中不需要进行模块状态的切换。

  使用这种方法生成的规则DLL其程序较大,也可能包含重复的代码。

  (2)动态链接到MFC 的规则DLL

   动态链接到MFC 的规则DLL 可以和使用它的可执行文件同时动态链接到 MFC DLL 和任何MFC扩展 DLL。在使用了MFC共享库的时候,默认情况下,MFC使用主应用程序的资源句柄来加载资源模板。这样,当DLL和应用程序中存在相同ID的资源时(即 所谓的资源重复问题),系统可能不能获得正确的资源。因此,对于共享MFC DLL的规则DLL,我们必须进行模块切换以使得MFC能够找到正确的资源模板。
我们可以在Visual C++中设置MFC规则DLL是静态链接到MFC DLL还是动态链接到MFC DLL。如图8,依次选择Visual C++的project -> Settings -> General菜单或选项,在Microsoft Foundation Classes中进行设置。


分享到:
评论

相关推荐

    VC++动态链接库(DLL)编程3

    ### 5.1 MFC规则DLL概述 MFC规则DLL分为两种类型: 1. **静态链接到MFC的规则DLL**:DLL与MFC库静态链接,MFC的代码直接包含在DLL文件中。由于直接包含了MFC库,因此程序体积较大,可能导致代码重复。由于MFC与DLL...

    动态链接库详解-vc中创建和使用动态库

    **MFC规则DLL概述** MFC规则DLL是基于MFC库的动态链接库,但其对外的接口不使用MFC类。这意味着其他非MFC或MFC的应用程序都可以调用这些DLL。MFC规则DLL分为两种类型: 1. **静态链接到MFC的规则DLL**:DLL直接...

    DLL编程深入浅出带源码

    带源代码 ...5. MFC规则DLL 5.1 概述 5.2 MFC规则DLL的创建 5.3 一个简单的MFC规则DLL 5.4 MFC规则DLL的调用 5.5 共享MFC DLL的规则DLL的模块切换 6.1 MFC扩展DLL的创建 6.2 MFC扩展DLL的调用 6.3 总结

    深入浅出Visual C++动态链接库(DLL)编程(pdf版+doc版)

    第三章:VC++动态链接库编程之MFC规则DLL 5.1 概述 5.2 MFC规则DLL的创建 5.3 一个简单的MFC规则DLL 5.4 MFC规则DLL的调用 5.5 共享MFC DLL的规则DLL的模块切换 第四章:VC++动态链接库编程之MFC扩展 DLL 6.1概论 ...

    VC 中的DLL介绍

    MFC规则DLL 32 5.1 概述 32 5.2 MFC规则DLL的创建 33 5.3 一个简单的MFC规则DLL 35 5.4 MFC规则DLL的调用 40 5.5 共享MFC DLL的规则DLL的模块切换 42 6. MFC扩展DLL 50 6.1概论 50...

    DLL的MFC编程--最好的dll编程教材

    1. **规则DLL**: - **特点**:可以被任何Windows应用程序调用。 - **使用场景**:适用于希望将功能开放给非MFC应用程序的情况。 2. **共享MFC DLL**: - **特点**:不包含MFC库函数,需要在目标机器上预先安装...

    MFC基础概述,消息机制

    针对不同的应用和目的,程序员可以采用不同的模板,例如SDI应用程序的模板、MDI应用程序的模板、规则DLL应用程序的模板、扩展DLL应用程序的模板、OLE/ACTIVEX应用程序的模板等。 MFC的核心类包括CObject和...

    将扩展dll转为共享规则dll方法

    ### 将扩展DLL转为共享规则DLL的方法 #### 概述 在软件开发过程中,动态链接库(Dynamic Link Library,简称DLL)是非常重要的组件之一,它可以在多个应用程序之间共享代码和资源。通常情况下,DLL可以分为扩展DLL...

    深入浅出VC++动态链接库_DLL_编程

    MFC规则DLL是基于MFC框架的一种DLL类型,它包含了一个继承自`CWinApp`的类,但没有自己的消息循环。 ##### 5.2 MFC规则DLL的创建 创建MFC规则DLL时,需要选择适当的选项来启用MFC支持,并设置MFC的链接方式。 ###...

    DLL动态链接库编程入门(5文件)

    本压缩包提供了五个文件,涵盖了DLL的基础知识和在MFC(Microsoft Foundation Classes)框架以及非MFC规则下的编程实践。 首先,我们来了解一下DLL的基本概念。DLL文件本质上是一段可执行代码,它包含函数、类和...

    VC创建与使用DLL

    一 链接库概述 二 静态链接库 三 库的调试与查看 四 一个简单的DLL 非MFC动态库 五 MFC规则DLL Regular 六 MFC扩展DLL的创建 七 让EXE导出函数及DLL木马

    动态链接库(DLL)编程深入浅出

    - **VC++中的DLL分类**:在Visual C++中,主要有三种类型的DLL:非MFC DLL、MFC规则DLL以及MFC扩展DLL。非MFC DLL不依赖于MFC类库,因此可以被非MFC或MFC程序调用;MFC规则DLL包含了继承自CWinApp的类,但没有消息...

    dll全面讲解

    2. **MFC Regular DLL**(MFC规则DLL):包含一个继承自`CWinApp`的类,但没有消息循环。 3. **MFC Extension DLL**(MFC扩展DLL):采用MFC的动态链接版本创建,只能被用MFC类库编写的应用程序调用。 #### 静态...

    MFC深入浅出带目录完整版(李久进chm版)

    并且进一步阐述MFC的核心概念之一:状态(模块状态、线程状态、模块线程状态),揭示MFC对多线程的支持机制,MFC实现规则DLL和扩展DLL的内幕。 第十章,阐述MFC下的调试手段。 第十一章,讨论CFile类,主要分析了...

Global site tag (gtag.js) - Google Analytics