Подтвердить что ты не робот

Почему ошибка Visual Studio 2013 на C4996?

В предыдущих версиях Visual Studio с использованием таких функций, как _sleep или strncpy, выдается предупреждение. В последней версии это внезапно ошибка:

unexpected error

error C4996: '_sleep': эта функция или переменная заменена более новой библиотекой или функциональностью операционной системы. Вместо этого подумайте об использовании Sleep. Смотрите справку для деталей.

Я знаю, что могу отключить его, добавив в начале кода #pragma warning(disable: 4996), но очень раздражает то, что VS пытается заставить меня использовать другие функции. Есть ли способ отключить это поведение?

Перед тем, как вы спросите: "Отслеживать предупреждения как ошибки" отключен, а также ошибки, даже если я отключу все предупреждения!

4b9b3361

Ответ 1

По-видимому, новые проекты теперь позволяют "проверять SDK" по умолчанию, что относится к этим предупреждениям как к ошибкам. Чтобы отключить его, перейдите к свойствам проекта → Свойства конфигурации → C/С++ → Общие → Проверка SDL → Нет.

Ответ 2

Вы также можете отключить определенные номера предупреждений в C/С++ > Дополнительно > Отключить специальные предупреждения.

Ответ 3

введите в начале программы:

#pragma warning(disable : 4996)

и что это.

Ответ 4

Project → свойства_имя_проекта → Свойства конфигурации → C/С++ → Препроцессор → Определения препроцессора → Изменить... добавить строку _CRT_SECURE_NO_WARNINGS

Ответ 5

Компиляция всех источников, о которых я говорил:

Удалить защищенные предупреждения (_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