Безопасная версия wsprintf ()?

Как у нас есть безопасная версия для _stprintf т.е. stprintf_s для переполнения буфера hp fortify
предупреждение, так что мы можем использовать вместо wsprintf()? Я старался wsprintf_s, Это не работает.

И может кто-нибудь, пожалуйста, объясните разницу ч / б _stprintf а также wsprintf? Или мы можем использовать stprintf_s в качестве безопасной версии для wsprintf ,

1

Решение

Опции описаны в разделе wsprintf:

Заметка Не использовать. Попробуйте вместо этого использовать одну из следующих функций: StringCbPrintf, StringCbPrintfEx, StringCchPrintf, или же StringCchPrintfEx. Смотрите соображения безопасности.

Если вы предпочитаете использовать безопасную функцию, которая больше напоминает wsprintf, идти с swprintf_s или же _snwprintf_s.

_stprintf является макросом препроцессора, который отображает вызов в версию ANSI или UNICODE. Таблица сопоставления документирована в sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l:

TCHAR.H routine | _UNICODE & _MBCS not defined | _MBCS defined | _UNICODE defined
----------------+------------------------------+---------------+-----------------
_stprintf       | sprintf                      | sprintf       | _swprintf

Картографический стол для _stprintf_s:

TCHAR.H routine | _UNICODE & _MBCS not defined | _MBCS defined | _UNICODE defined
----------------+------------------------------+---------------+-----------------
_stprintf_s     | sprintf_s                    | sprintf_s     | swprintf_s
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]