Что означает "использование -D_SCL_SECURE_NO_WARNINGS"?

У меня есть ошибка при попытке скомпилировать мою программу сжатия кривых, ошибка C4996, вызов функции с параметрами может быть небезопасным. Это говорит мне использовать выше. Ошибка возникает из файла заголовка xutility, о котором я никогда не видел. это флаг, который я должен вводить в консоль? В нем нет ссылки на него онлайн...

Ответ 1

-D - это флаг компилятора командной строки, который заставляет остальную часть текста обрабатываться так, как если бы в вашем коде было #define.

В проводнике решений щелкните правой кнопкой мыши проект, выберите "свойства". Откроется страница свойств проекта. Разверните запись " > C/С++" в дереве слева и выберите "Препроцессор" под этим. Верхняя запись в правой панели должна быть "Определения препроцессора". В этом окне редактирования добавьте _SCL_SECURE_NO_WARNINGS, отделив его от других записей с помощью;;

Ответ 2

Я хотел бы также добавить, что если вы хотите использовать

#define _SCL_SECURE_NO_WARNINGS

непосредственно в вашем коде, вы должны разместить его перед включением заголовков. Или вы можете использовать

#pragma warning(disable:4996)

Ответ 3

-D означает "определить макрос", в данном случае _SCL_SECURE_NO_WARNINGS. Что означает где-то в коде есть

#if defined(_SCL_SECURE_NO_WARNINGS)

линии. Если вы хотите сделать это изнутри VS, перейдите на страницу свойств проекта и под одним из вкладок должно быть место для добавления новых определений. Там уже должны быть некоторые из них (например, DEBUG). Добавьте туда _SCL_SECURE_NO_WARNINGS.