2017年VSC的MFC发展 我安装VS2017时,我用C++选项选择了Windows开发。然而,在安装之后,我没有看到添加了MFC。果然,我编译应用程序时会出错

2017年VSC的MFC发展 我安装VS2017时,我用C++选项选择了Windows开发。然而,在安装之后,我没有看到添加了MFC。果然,我编译应用程序时会出错,mfc,visual-studio-2017,Mfc,Visual Studio 2017,致命错误C1083:无法打开包含文件:“afxwin.h”:没有此类文件或目录 我在控制面板中找不到vs2017安装的更改/修改选项。如何添加“微软基础类C++”包? ,应该使用 VisualStudioStudio进行修改。p> 要创建MFC项目,只需为应用程序类型选择Win32 project/Win32 Console应用程序,然后单击“确定”。在“应用程序向导”中,单击“下一步”,在“应用程序设置”中,选中“添加通用头文件”下的“MFC”:如果查看VS安装程序窗口顶部附近,您将看到工作负

致命错误C1083:无法打开包含文件:“afxwin.h”:没有此类文件或目录


我在控制面板中找不到vs2017安装的更改/修改选项。如何添加“微软基础类C++”包?

,应该使用<强> VisualStudioStudio<强>进行修改。p>
要创建MFC项目,只需为应用程序类型选择Win32 project/Win32 Console应用程序,然后单击“确定”。在“应用程序向导”中,单击“下一步”,在“应用程序设置”中,选中“添加通用头文件”下的“MFC”:

如果查看VS安装程序窗口顶部附近,您将看到
工作负载
单个组件
语言包

至少在我看来,没有一个“工作负载”会在您的安装中包含MFC。要获得它,您首先必须单击“单个组件”,然后向下滚动到“SDK、库和框架”部分。在这里,您可以找到ATL和MFC支持的组件列表:

在VS2019安装程序中,可能性列表甚至更长。ARM、ARM64和x86/x64的141和142个构建集各有两个版本,包括Spectre缓解版和不包括Spectre缓解版:


不过,这并不一定就是故事的结尾:默认情况下,即使您安装了它,它也只安装MFC的Unicode版本。如果您想要窄字符版本,则必须单独安装。我认为安装程序中没有任何条目可以执行此操作,但如果您尝试构建使用窄字符MFC的项目,您将收到一条错误消息,其中包含下载链接。

在Windows 10和Visual Studio 2017 Community Edition中,修改Visual Studio 2017安装,我必须从Windows的“开始”菜单进入“设置”,然后在搜索框中输入“应用程序和功能”以显示已安装应用程序的列表(只需键入“应用程序”就足以将其显示在列表中)

然后,我在应用程序列表中查找Microsoft Visual Studio 2017,单击该条目,然后显示“修改”按钮。单击“修改”按钮将打开安装程序,允许您修改各种组件

我见过这样的情况,安装程序希望在允许您执行修改操作之前更新Visual Studio 2017。取决于上次使用它的时间和上次更新的时间

因此,可能会有一个更新按钮,而不是修改按钮

VS 2017修改对话框有三个选项卡,“工作负载”、“单个组件”和“语言包”。单击“单个组件”,然后向下滚动到标题为“SDK、库和框架”的部分,这是我安装的最后一部分。应该有一个“MFC和ATL支持(x86和x64)”条目,并在末尾附近有一个复选框


“修改安装”对话框的“单个组件”视图中提供了很多信息。

仅为VS 2019添加提示:

在VS 2019中,很好地展示了MFC/ATL选项的爆炸性增长。因为有很多选项,每个MFC包都是1.1+GB,所以下面介绍如何选择正确的一个

平台:希望您知道:)但它在项目属性中

版本:对于现有项目,可以在“配置属性->常规->平台工具集”下的项目属性中找到它

下面是显示两者的屏幕截图(本例中为Win32=x86)。在本例中,我需要“用于v141构建工具(x86和x64)的C++MFC”:

我刚刚在最新版本的VS2017中试用过,默认情况下没有启用,因此@JerryCoffing是正确的,您必须手动启用它,无论是从工作负载窗格还是从“单个组件”窗格(它们都选择相同的包)。看起来像“MFC和ATL支持”。@StevenM.vascello:我编辑了答案,以显示如何使用当前安装程序。@Jerrycolfin“MFC和ATL支持”是如何被拆分为30个不同的组件的?@StevenM.vascello:如答案中所述,“对于141和142个构建集,ARM、ARM64和x86/x64都有版本,包括Spectre缓解版和不包括Spectre缓解版。”瞧,组合爆炸。此Visual Studio开发人员社区帖子有一个答案,其中包含该过程的屏幕截图。另请参阅此分为两部分的博客帖子。以及相关内容: