Функция StringCchCat


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

Синтаксис

HRESULT StringCchCat(      

    LPTSTR pszDest,
    size_t cchDest,
    LPCTSTR pszSrc
);

Параметры

pszDest

[in, out] Указатель на буфер, содержащий в себе строку, c которой строка pszSrc объединяется, и который содержит всю результирующую строку. Строка в pszSrc добавляется в конец строки в pszDest.

cchDest

[in] Размер целевого буфера, в символах. Это значение должно равняться длине pszSrc, плюс длина pszDest плюс 1, чтобы учесть длину обеих строк и символ завершающего нуля. Максимальное число символов допускается до STRSAFE_MAX_CCH.

pszSrc

[in] Указатель на буфер, содержащий в себе исходную строку, которая объединяется до конца pszDest. Эта исходная строка должна быть завершена символом конца строки ('\0').

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

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

 

Значение

Предназначение

S_OK Исходные данные присутствовали, строки были полностью объединены без усечения и итоговый результат целевого буфера завершен символом конца строки ('\0').
STRSAFE_E_INVALID_PARAMETER Значение в cchDest или 0 или больше, а не STRSAFE_MAX_CCH, или целевой буфер уже заполнен.
STRSAFE_E_INSUFFICIENT_BUFFER Операция конкатенации завершалась ошибкой из-за недостаточного пространства буфера. Целевой буфер содержит обрезанную версию с нулевым символом в конце предполагаемого результата. В ситуациях, где усечение является приемлемым, это может не обязательно быть замечено как условие сбоя.

Замечания

Функция StringCchCat предусматривает дополнительную обработку для правильной работы буфера в Вашем коде. Недостаточная обработка буфера влечет за собой многие проблемы обеспечения безопасности, которые вызывают переполнение буфера. StringCchCat всегда завершает символом конца строки ('\0') целевой буфер ненулевой длины.

StringCchCat может использоваться в своей общей форме, или в специальной, такой как StringCchCatA (для строк ANSI) или StringCchCatW (для строк Unicode). Форма использования определяется Вашими данными.

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

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

Функция

char "string" StringCchCatA
TCHAR TEXT("string") StringCchCat
WCHAR L"string" StringCchCatW
 

Функция StringCchCat и её варианты ANSI и Unicode - замена для этих функций:

 

Поведение неопределенное, если строки указанные при помощи pszSrc и pszDest - перекрываются.

Ни pszSrc, ни pszDest не должны быть NULL. См. описание StringCchCatEx, если Вам потребуется обработка значений указателя пустой строки.

Смотри также

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

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

К 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