Функция StringCchLength - заменяет функцию strlen. Она используется, чтобы гарантировать, что строка не больше, чем заданная длина, в символах. Если это условие соблюдается, то StringCchLength возвращает текущую длину строки в символах, включая символ завершающего нуля.
HRESULT StringCchLength( LPCTSTR psz, size_t cchMax, size_t *pcch ); |
[in] Указатель на буфер, содержащий строку, длина которой проверялась.
cchMax[in] Максимальное число символов, допустимых в psz, включая символ завершающего нуля. Это значение не может выходить за пределы STRSAFE_MAX_CCH.
pcch[out] Указатель на переменную типа size_t, содержащую число символов в psz, исключая символ завершающего нуля. Это значение применяется только тогда, если pcch, не нуль и функция завершается успешно.
Обратите внимание! на то, что эта функция возвращает HRESULT в противоположность функции strlen, которая возвращает целое число. Настоятельно рекомендуется, что Вы использовали макроопределения SUCCEEDED и FAILED, чтобы проверить возвращаемое значение этой функцией. |
Значение |
Предназначение |
S_OK | Строка в psz была не нулевой, а длина строки (включая символ завершающего нуля) меньше чем, или равен cchMax символам. |
STRSAFE_E_INVALID_PARAMETER | Значение в psz - NULL, cchMax больше, чем STRSAFE_MAX_CCH, или psz более длинный, чем cchMax. |
Функция StringCchLength - дополнительное инструментальное средство для правильной обработки буфера в Вашем коде. Недостаточная обработка буфера влечет за собой во многие проблемы обеспечения безопасности, которые вызывают переполнение буфера.
Функция StringCchLength может быть использована в своей общей форме, или в специальной, такой как StringCchLengthA (для строк ANSI) или StringCchLengthW (для строк Unicode). Форма использования определяется Вашими данными.
Тип строковых данных |
Строковый литерал |
Функция |
---|---|---|
char | "string" | StringCchLengthA |
TCHAR | TEXT("string") | StringCchLength |
WCHAR | L"string" | StringCchLengthW |
Обзор Строки, Функции, используемые строками, StringCbLength
Размещение и совместимость StringCchLength |
||
К | 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. | |
Замечания по платформе | Не имеется |