Функция StringCbLength

Функция StringCbLength - это замена для функции strlen. Она используется, чтобы гарантировать, что строка не больше, чем данная длина, в байтах. Если это условие соблюдается, то StringCbLength возвращает текущую длину строки в байтах, не включая тех, которые используется для символа завершающего нуля.

Синтаксис

HRESULT StringCbLength(      

    LPCTSTR psz,
    size_t cbMax,
    size_t *pcb
);

Параметры

psz

[in] Указатель на буфер, содержащий в себе строку, длина которой проверяется.

cbMax

[in] Максимально допустимое число байтов в psz, включая и те, которые используются для символа завершающего нуля. Это значение не может выйти за пределы STRSAFE_MAX_CCH * sizeof (TCHAR).

pcb

[out] Указатель на переменную типа size_t, содержащую число байтов в psz, исключая те, которые используются для символа завершающего нуля. Это значение применяется только тогда, если pcb - не нуль (пустой указатель), а функция завершается успешно.

Возвращаемое значение

Обратите внимание! на то, что функция возвращает значение HRESULT в противоположность функции strlen, которая возвращает целое число. Поэтому настоятельно рекомендуется, чтобы вы использовали макросы SUCCEEDED и FAILED для проверки возвращаемого значения этой функцией.

 

Возвращаемое значение

Описание

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

Замечания

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

Функция StringCbLength может быть использована в своей унифицированной форме, или специально как StringCbLengthA (для строк ANSI) или StringCbLengthW (для строк Unicode). Форма использования определяется вашими данными.

Тип данных строки

Литерал строки

Функция

char "string" StringCbLengthA
TCHAR TEXT("string") StringCbLength
WCHAR L"string" StringCbLengthW

Смотри также

Обзор Строки, Функции, используемые строками, StringCchLength

Размещение и совместимость StringCbLength

К Windows XP Да
л Windows 2000 Professional Да
и Windows NT Workstation Да версии 3.1
е Windows Me Да
н Windows 98 Да
т Windows 95 Да
 
С Windows Server 2003 Да
е Windows 2000 Server Да
р Windows NT Server Да версии 3.1
в    
е    
р    
Используемая библиотека strsafe.lib
Используемая DLL -
Заголовочный файл  
- объявлено в strsafe.h
- включено в -
Unicode Реализуются как версии Unicode и ANSI.
Замечания по платформе Не имеется

 

Назад в оглавление
На главную страницу
В оглавление справки

Hosted by uCoz