使用MFC类编写的应用程序是否需要安装外部Framework

Do Applications written with MFC classes require external Frameworks to be installed

本文关键字:安装 外部 Framework 是否 应用程序 MFC 使用      更新时间:2023-10-16

如果我在C++中使用MFC库编写应用程序,在部署阶段我是否需要安装某种框架或类似的东西?我的意图是有一个独立的exe没有复杂的安装脚本。

如果您正在为自己的组织开发本地应用程序,可以按照Danny的建议进行静态链接。

但静态链接不是微软推荐的方法:每次有与MFC相关的补丁(这里的例子)或另一个库的z补丁时,你都必须重新编译代码并重新分发或安装它,以避免PC暴露在安全漏洞中。

这就是为什么微软建议使用动态库:这些库更容易更新/替换(最终已经安装了最新版本;或者自动更新windows;或者在必要时手动下载最新版本)。

如果你选择动态方法:

  • 有几个mfc*.dll与其他标准库(如Msvcr100.dll)一起随应用程序分发。这都在文章中解释过了。在应用程序的目录中安装这样的文件具有安装过程更精简的优势。但在必要的情况下,你必须对他们的更新负责
  • 或者您选择使用Microsoft的可重新分发软件包。这些可以直接从Microsoft下载,并包含在可自行安装的文件vc_redist*.exe中。以下是关于如何在安装过程中使用它们的一些解释。它可能安装的dll比所需的多,但vc_redist是已安装的Microsoft产品,它与Windows Update保持同步

如果链接MFC statically,则不需要外部文件。

项目设置/概述:

Use of MFC: Use MFC in a Static Library

但是,正如Christophe所提到的,微软并不推荐使用它。