动态链接库之二--规则MFC DLL

         前面介绍了非规则MFC DLL,今天我们在总结一下第二类DLL--规则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 能够找到正确的资源模板。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值