Почему включение проверок SDL преобразует предупреждение C4995 в ошибку C4995?
Сегодня, перед тем как перестроить библиотеку C++ и ее программу модульного тестирования, я решил включить проверку SDL в настройках проекта для модульных тестов. Проверки SDL были включены в проекте библиотеки, когда он был обновлен с Visual Studio 6 до Visual Studio 2013, и его списки компиляции вызывают дюжину или более предупреждений SDL, в основном вокруг
_tsprintf
, которые я, возможно, никогда не исправлю, потому что я не вижу их действительно сломанными.У меня есть много других проектов, все с включенными проверками SDL, многие с неразрешенными предупреждениями вокруг
_tprintf
и другие устаревшие функции ЭЛТ. На сегодняшний день ни один из них не представляет проблемы.Недавно я обнаружил и начал использовать
#progrma deprecate
чтобы отметить некоторые из моих собственных старых функций, чтобы напомнить мне, чтобы в конечном итоге заменить их их преемниками. До сегодняшнего дня эти устаревшие функции никогда не мешали мне компилировать и связывать библиотеку. Единственное, что я вижу, что может отличить этот проект от других,-это то, что его выход-это программа символьного режима, в то время как другие-это библиотеки динамических ссылок.Есть дискуссия о переполнении стека это дало мне намек на то, что мне нужно двигаться. Однако, ИМО, предлагаемое решение напрашивается вопрос: почему это использование
pragma warning
помечено в качестве ошибка, в то время как каждый другой экземпляр является предупреждение?Что я уже пробовал:
То, что я попробовал, и это сработало, - это устранить проверки SDL.