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


CSimpleStringT::GetBufferSetLength

Возвращает указатель на внутренний буфер символов для объекта CSimpleStringT, усечение или увеличение свою длину если необходимый, чтобы точно соответствует длине, указанной в nLength.

PXSTR GetBufferSetLength(
   int nLength
);

Параметры

  • nLength
    Точный размер буфера знаков CSimpleStringT в символах.

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

PXSTR указатель на буфер символов (null- завершенного) объекта.

Заметки

Вызывайте этот метод для извлечения указанная длина внутреннего буфера объекта CSimpleStringT.Возвращенный указатель PXSTR не const и, таким образом, не позволяет непосредственно изменение содержимого CSimpleStringT.

Если используется указатель на возвращенный GetBufferSetLength чтобы изменить содержимое строки, вызовите ReleaseBuffer для обновления внутреннее состояние CsimpleStringT прежде чем использовать другие методы CSimpleStringT.

Адрес, возвращенный GetBufferSetLength не может быть допустимым после вызова метода ReleaseBuffer так как дополнительные операции CSimpleStringT могут привести к тому, что буфер CSimpleStringT быть reallocated.Буфер не переподчинен если не изменить длину CSimpleStringT.

Память буферов освобождается автоматически, когда объект CSimpleStringT удален.

Если отслеживание самостоятельно сохранить длины строки, не добавляйте конечного нуль-символ.Необходимо определить окончательную длину строки при выпуске буфер с помощью ReleaseBuffer.При добавлении конечной нуль-символ, то при вызове ReleaseBuffer, передайте значение – 1 (по умолчанию) для длины в ReleaseBuffer и ReleaseBuffer выполняются strlen в буфере, чтобы определить его длину.

Дополнительные сведения о ссылке, подсчитывая см. в следующих статьях:

Пример

Следующий пример демонстрирует использование CSimpleStringT::GetBufferSetLength.

CSimpleString str(pMgr);
LPTSTR pstr = str.GetBufferSetLength(3);
pstr[0] = _T('C');
pstr[1] = _T('u');
pstr[2] = _T('p');

// No need for trailing zero or call to ReleaseBuffer()
// because GetBufferSetLength() set it for us.

str += _T(" soccer is best!");
ASSERT(_tcscmp(str, _T("Cup soccer is best!")) == 0);   

Требования

заголовок: atlsimpstr.h

См. также

Ссылки

Класс CSimpleStringT

CSimpleStringT::GetBuffer

CSimpleStringT::ReleaseBuffer