Функция 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, не нуль и функция завершается успешно.
Значение |
Предназначение |
| 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. | |
| Замечания по платформе | Не имеется | |