Функция StringCbLengthA (strsafe.h)
Определяет, превышает ли строка указанную длину (в байтах).
StringCbLength является заменой следующих функций:
Синтаксис
STRSAFEAPI StringCbLengthA(
[in] STRSAFE_PCNZCH psz,
[in] size_t cbMax,
[out] size_t *pcbLength
);
Параметры
[in] psz
Тип: LPCTSTR
Строка, длина которой должна быть проверена.
[in] cbMax
Тип: size_t
Максимальное число байтов, допустимое в psz, включая байты, используемые для завершающего символа NULL. Это значение не может превышать STRSAFE_MAX_CCH * sizeof(TCHAR)
.
[out] pcbLength
Тип: size_t*
Число байтов в psz, за исключением байтов, используемых для завершающего символа NULL. Это значение допустимо только в том случае , если pcb не равно NULL и функция завершается успешно.
Возвращаемое значение
Тип: HRESULT
Эта функция может возвращать одно из следующих значений. Настоятельно рекомендуется использовать макросы SUCCEEDED и FAILED для проверки возвращаемого значения этой функции.
Код возврата | Описание |
---|---|
|
Строка в psz не имеет значения NULL, а длина строки (включая завершающий символ NULL) меньше или равна символам cbMax . |
|
Значение в psz равно NULL, cbMax больше , или STRSAFE_MAX_CCH * sizeof(TCHAR) psz длиннее cbMax.
|
Обратите внимание, что эта функция возвращает значение HRESULT , в отличие от функций, которые она заменяет.
Комментарии
По сравнению с функциями, которые он заменяет, StringCbLength является дополнительным инструментом для правильной обработки буфера в коде. Плохая обработка буфера связана со многими проблемами безопасности, которые связаны с переполнением буфера.
StringCbLength можно использовать в универсальной форме или в более конкретных формах. Тип данных строки определяет форму этой функции, которую следует использовать.
Тип данных String | Строковый литерал | Функция |
---|---|---|
char | Строка | StringCbLengthA |
TCHAR | TEXT("string") | StringCbLength |
WCHAR | L"string" | StringCbLengthW |
UnalignedStringCbLength является псевдонимом для этой функции.
Примечание
Заголовок strsafe.h определяет StringCbLength как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP с пакетом обновления 2 (SP2) [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2003 с пакетом обновления 1 (SP1) [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | strsafe.h |