c++ - 我的项目应该从哪里包含 new.h?(Visual Studio 和/或 SDK 损坏或版本不兼容?)
问题描述
我有一个项目,最初是 Visual Studio 2005 项目,现在是 Visual Studio 2019 项目。它是在 Windows 10 上使用 142 平台工具集构建的,但用于在 Windows 8.1 及更高版本上部署。因此它选择 Windows 8.1 SDK,并将 WINVER、_WIN32_WINNT 和 _WIN32_WINDOWS 全部设置为 0x0603。
这是一个 MFC 项目,stdafx.h
几乎无处不在。那包括afxwin.h
,这又包括afx.h
,那包括new.h
。这一切都可以在我的桌面开发机器上使用 Visual Studio 2019 社区版本 16.4.3 构建。
在升级到“最新”Visual Studio 版本(16.6.2)之后,我刚刚尝试在笔记本电脑上构建项目。它无法构建,因为它找不到new.h
. 据我所知,new.h
应该是SDK的一部分。但new.h
不在 Windows 8.1 SDK 中(或者至少:不是我的)。
但真正让我困惑的是,当我在成功构建中进行追踪时new.h
,也配置为使用 Windows 8.1 SDK,它new.h
在 Windows 10 SDK 中找到。
我不清楚我是否有 (a) 一个坏项目 (b) 1 个或多个坏的 Visual Studio 安装 (c) 1 个或多个坏的 SDK 安装。在这种情况下,我应该在哪里找到new.h
,这是否能说明我正在经历的 a、b 或 c 中的哪一个?
解决方案
案例 (d):您缺少笔记本电脑上的 Windows SDK 8.1 安装。这需要与 VS 安装分开完成。从 Visual Studio 2019 v16.0 发行说明 -弃用:
Visual Studio 安装程序中不再提供 Windows 8.1 SDK。请将您的 C++ 项目升级到最新的 Windows 10 SDK。如果您对 8.1 有硬性依赖,您可以从Windows SDK 存档下载它。
[编辑] 以 Windows SDK 8.1 为目标并不会删除对 Windows 10 SDK 的所有引用,这仍然是必需和使用的。例如,使用 v142 工具集和 v8.1 SDK 的 C++ MFC 项目的包含路径在我的机器上默认设置为以下。
C:\Program Files (x86)\Microsoft Visual Studio\2019\VC\Tools\MSVC\14.25.28610\include
C:\Program Files (x86)\Microsoft Visual Studio\2019\VC\Tools\MSVC\14.25.28610\atlmfc\include
C:\Program Files (x86)\Microsoft Visual Studio\2019\VC\Auxiliary\VS\include
C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt
C:\Program Files (x86)\Microsoft Visual Studio\2019\VC\Auxiliary\VS\UnitTest\include
C:\Program Files (x86)\Windows Kits\8.1\Include\um
C:\Program Files (x86)\Windows Kits\8.1\Include\shared
C:\Program Files (x86)\Windows Kits\8.1\Include\winrt
C:\Program Files (x86)\Windows Kits\NETFXSDK\4.7.2\Include\um
推荐阅读
- python - 定义将随机值添加到展平层输出的 Keras 自定义层
- azure - 如何测试 Azure“端点安全”策略的合规性
- android - 如何在改造多部分请求中获取上传进度百分比?
- android - Google Play - 新应用程序的内部测试
- wordpress - 结帐页面中的 Woocommerce、计费国家和州没有改变
- python - 我怎样才能回到python
- python - Python:每周拆分日期时间日期
- java - 当它与另一个覆盖窗口的位置匹配时,如何删除android中的覆盖窗口?
- mongodb - MongoDB BulkWrite 更新操作 $set 不工作
- javascript - 如何在 Django 中实现 JavaScript?