У меня есть проект, который начинался как проект Visual Studio 2005, а теперь является проектом Visual Studio 2019. Он построен с использованием 142 Platform Toolset на Windows 10, но для развертывания на Windows 8.1 и новее. Таким образом, он выбирает Windows 8.1 SDK и устанавливает для WINVER, _WIN32_WINNT и _WIN32_ WINDOWS все значения 0x0603.
Это проект MF C, поэтому stdafx.h
практически везде. Это включает afxwin.h
, которое, в свою очередь, включает afx.h
, а это включает new.h
. Все это отлично работает на моем настольном компьютере разработчика с версией 16.4.3 сообщества Visual Studio 2019.
Я только что попытался собрать проект на ноутбуке сразу после обновления до «последней» версии 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.
Я не понимаю, есть ли у меня (а) плохой проект (б) 1 или более плохих Visual Studio установок (c) 1 или несколько неверных установок SDK. Где я должен ожидать найти new.h
при таких обстоятельствах, и проливает ли это свет на то, что из a, b или c я испытываю?