Поделиться через


Функция 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 макросы для проверки возвращаемого значения этой функции.

Возвращаемый код Описание
S_OK
Строка в psz не была null, а длина строки (включая завершающий символ NULL) меньше или равно символам cbMax.
STRSAFE_E_INVALID_PARAMETER
Значение psz равно NULL, cbMax больше STRSAFE_MAX_CCH * sizeof(TCHAR)или psz длиннее cbMax.
 

Обратите внимание, что эта функция возвращает значение HRESULT, в отличие от функций, которые он заменяет.

Замечания

По сравнению с функциями, которые он заменяет, StringCbLength является дополнительным средством для правильной обработки буфера в коде. Низкая обработка буфера связана со многими проблемами безопасности, включающими переполнение буфера.

StringCbLength можно использовать в универсальной форме или в более конкретных формах. Тип данных строки определяет форму этой функции, которую следует использовать.

Тип данных строки Строковый литерал Функция
char "string" 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]
целевая платформа Виндоус
заголовка strsafe.h

См. также

StringCchLength