У меня вопрос: смогу ли я использовать более новую безопасную версию?
выполнить мои программы на старых версиях Windows, например
Windows 95? Из-за требований у нас может быть только один исполняемый файл
файл.
Версии _s
не являются «безопасными», независимо от того, говорите ли вы о реализациях Microsoft или реализациях, соответствующих действующему стандарту. Они включают в себя механизмы, предназначенные для того, чтобы помочь избежать или смягчить некоторые программные ошибки, которые имеют последствия для безопасности, но их эффективность ограничена.
Но относительно того, будут ли они поддерживаться на очень старых версиях Windows, нет, не по умолчанию. Функции _s не существовали при жизни Windows 95, поэтому версии библиотеки времени выполнения C, распространяемые с этой версией Windows, не поддерживают их. Тем не менее, довольно распространено, чтобы приложения Windows были упакованы с версией библиотеки времени выполнения MS C, которая поддерживает их потребности. Возможно, вы можете пойти по этому пути, но я не могу сказать, существует ли какая-либо версия среды выполнения MS C, которая поддерживает все версии Windows за последние 24 года и содержит функции _s.
Лучше всего ограничить себя функциями из стандартной библиотеки C90, функциями WinAPI, поддерживаемыми во всех целевых версиях Windows, а также функциями, предоставляемыми самим приложением и любыми сторонними библиотеками, распространяемыми с ним (которые сами должны соответствовать те же ограничения). Или вы можете ограничить поддержку меньшим количеством версий Windows. Сама Microsoft не поддерживала Windows 95 в течение 18 лет.