DLL 类型

9 篇文章 0 订阅
DLL 类型 Visual Studio
1,非 MFC DLL
2,静态链接到 MFC 的规则 DLL
3,动态链接到 MFC 的规则 DLL
4,扩展 DLL
1,非 MFC DLL
  如果 DLL 不使用 MFC,则使用 Visual C++ 生成非 MFC Win32 DLL。
  将 DLL(静态或动态)链接到 MFC 会占用大量磁盘空间和内存。
  除非 DLL 确实使用 MFC,否则不要链接到 MFC。
如果 DLL 要使用 MFC,且将由 MFC 或非 MFC 应用程序使用,则必须生成动态链接到 MFC 的规则 DLL 或静态链接到 MFC 的规则 DLL。
2,静态链接到 MFC 的规则 DLL
  如果静态链接到 MFC,则由于 DLL 会加载自己的私有 MFC 库代码副本,DLL 的文件大小会较大,且有可能占用额外的内存。
3,动态链接到 MFC 的规则 DLL
  大部分情况下可能需要使用动态链接到 MFC 的规则 DLL,因为这种 DLL 的文件大小要小得多,且使用共享 MFC 版本会节省大量内存。
  生成动态链接到 MFC 的 DLL 要比生成静态链接到 MFC 的 DLL 快,因为前者不需链接 MFC 本身。
  在链接器必须压缩调试信息的调试版本中尤其如此。通过与已经包含调试信息的 DLL 链接,DLL 中将只有很少的调试信息需要压缩。
  动态链接到 MFC 的一个缺点是必须用 DLL 发布共享 DLL:Mfcx0.dll 和 Msvcrt.dll(或类似的文件)。
  MFC DLL 可随便重新发布,但仍必须在安装程序中安装 DLL。另外必须交付 Msvcrt.dll,它包含程序和 MFC DLL 本身都要使用的 C 运行时库。
4,扩展 DLL
  如果 DLL 仅由 MFC 可执行文件使用,则可以选择生成规则 DLL 或扩展 DLL。
  如果 DLL 实现从现有 MFC 类派生的可重用类,或如果需要在应用程序和 DLL 之间传递 MFC 派生的对象,则必须生成扩展 DLL。
  如果 DLL 动态链接到 MFC,则可能要用 DLL 重新发布 MFC DLL。当在多个可执行文件之间共享类库以节省磁盘空间和最小化内存使用时,此结构尤其有用。
在 4.0 版之前,Visual C++ 仅支持两种使用 MFC 的 DLL 类型:USRDLL 和 AFXDLL。静态链接到 MFC 的规则 DLL 具有与原来的 USRDLL 相同的特性。
MFC 扩展 DLL 具有与原来的 AFXDLL 相同的特性。

VC有三种形式的MFC   DLL,即Regular   statically   linked   to   MFC   DLL(标准静态链接MFC   DLL)和Regular   using   the   shared   MFC   DLL(标准动态链接MFC   DLL)以及Extension   MFC   DLL(扩展MFC   DLL)。 
        第一种DLL的特点是,在编译时把使用的MFC代码加入到DLL中,因此,在使用该程序时不需要其他MFC动态链接类库的存在,但占用磁盘空间比较大; 
        第二种DLL的特点是,在运行时,动态链接到MFC类库,因此减少了空间的占用,但是在运行时却依赖于MFC动态链接类库; 
        前两种DLL既可以被MFC程序使用也可以被Win32程序使用。 
        第三种DLL的特点类似于第二种,做为MFC类库的扩展,只能被MFC程序使用。 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值