Ответ 1
По-видимому, новые проекты теперь позволяют "проверять SDK" по умолчанию, что относится к этим предупреждениям как к ошибкам. Чтобы отключить его, перейдите к свойствам проекта → Свойства конфигурации → C/С++ → Общие → Проверка SDL → Нет.
В предыдущих версиях Visual Studio с использованием таких функций, как _sleep или strncpy, выдается предупреждение. В последней версии это внезапно ошибка:
error C4996: '_sleep': эта функция или переменная заменена более новой библиотекой или функциональностью операционной системы. Вместо этого подумайте об использовании Sleep. Смотрите справку для деталей.
Я знаю, что могу отключить его, добавив в начале кода #pragma warning(disable: 4996)
, но очень раздражает то, что VS пытается заставить меня использовать другие функции. Есть ли способ отключить это поведение?
Перед тем, как вы спросите: "Отслеживать предупреждения как ошибки" отключен, а также ошибки, даже если я отключу все предупреждения!
По-видимому, новые проекты теперь позволяют "проверять SDK" по умолчанию, что относится к этим предупреждениям как к ошибкам. Чтобы отключить его, перейдите к свойствам проекта → Свойства конфигурации → C/С++ → Общие → Проверка SDL → Нет.
Вы также можете отключить определенные номера предупреждений в C/С++ > Дополнительно > Отключить специальные предупреждения.
введите в начале программы:
#pragma warning(disable : 4996)
и что это.
Project → свойства_имя_проекта → Свойства конфигурации → C/С++ → Препроцессор → Определения препроцессора → Изменить... добавить строку _CRT_SECURE_NO_WARNINGS
Компиляция всех источников, о которых я говорил:
Удалить защищенные предупреждения (_CRT_SECURE_NO_WARNINGS) из проектов по умолчанию в Visual Studio
kmcnamee answer on Как использовать _CRT_SECURE_NO_WARNINGS
Видео, которое решило мою проблему. https://www.youtube.com/watch?v=qWxGZLjwKL0
Очевидно, что жизненный цикл разработки безопасности (SDL) рекомендовал проверку, включающую включение дополнительных функций генерации защищенного кода и дополнительных предупреждений, связанных с безопасностью, в качестве ошибок.
Действия по устранению этой проблемы:
1. Go to Project-> "your project name" Properties
2. Under Configuration Properties, go to C/C++
3. Under C/C++, go to Preprocessor
4. Select Preprocessor Definitions and click on Edit from the dropdown menu
5. In the blank space fill out _CRT_SECURE_NO_WARNINGS