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


CSimpleStringT::LockBuffer

Запрещает ссылка учитываются и защищает строка в буфере.

PXSTR LockBuffer( );

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

Указатель на объект CSimpleStringT или null- завершенной строке.

Заметки

Этот метод вызывается для блокирования буфер объектов CSimpleStringT.Вызовом LockBuffer создается копия строки, a – 1 для счетчика ссылок.Если значение счетчика ссылок -1, считается, что строка в буфере "блокированном" состоянии.Находясь в состоянии строка защищатьа блокированных, в 2 случаях:

  • Никакая другая строка не может получить ссылку к данным в строке блокированных, даже если эта строка присвоена блокированных в строке.

  • Строка блокированных никогда не будет ссылаться на другую строку, даже если любая другая строка копирована блокированных в строке.

За счет блокирования строка в буфере, можно гарантировать, что владение строкой исключительный в буфере останется без изменений.

После завершения с LockBuffer, вызовите UnlockBuffer чтобы сбросить счетчик ссылок до 1.

ПримечаниеПримечание

При вызове GetBuffer в буфер и параметр nMinBufferLength блокированных набор GetBuffer к больше длины текущего буфера, то будут потеряны блокировки буфера.Такой вызов GetBuffer удаляет текущий буфер, заменить его с буфером размер запрошенного и устанавливает счетчик ссылок на ноль.

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

Пример

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

CSimpleString str(_T("Hello"), pMgr);
TCHAR ch;

str.LockBuffer();
ch = str.GetAt(2);
_tprintf_s(_T("%c"), ch);
str.UnlockBuffer();

Требования

Header: atlsimpstr.h

См. также

Ссылки

Класс CSimpleStringT

CSimpleStringT::ReleaseBuffer