CSimpleStringT::LockBuffer
Запрещает ссылка учитываются и защищает строка в буфере.
PXSTR LockBuffer( );
Возвращаемое значение
Указатель на объект CSimpleStringT или null- завершенной строке.
Заметки
Этот метод вызывается для блокирования буфер объектов CSimpleStringT.Вызовом LockBuffer создается копия строки, a – 1 для счетчика ссылок.Если значение счетчика ссылок -1, считается, что строка в буфере "блокированном" состоянии.Находясь в состоянии строка защищатьа блокированных, в 2 случаях:
Никакая другая строка не может получить ссылку к данным в строке блокированных, даже если эта строка присвоена блокированных в строке.
Строка блокированных никогда не будет ссылаться на другую строку, даже если любая другая строка копирована блокированных в строке.
За счет блокирования строка в буфере, можно гарантировать, что владение строкой исключительный в буфере останется без изменений.
После завершения с LockBuffer, вызовите UnlockBuffer чтобы сбросить счетчик ссылок до 1.
![]() |
---|
При вызове GetBuffer в буфер и параметр nMinBufferLength блокированных набор GetBuffer к больше длины текущего буфера, то будут потеряны блокировки буфера.Такой вызов GetBuffer удаляет текущий буфер, заменить его с буфером размер запрошенного и устанавливает счетчик ссылок на ноль. |
Дополнительные сведения о ссылке, подсчитывая см. в следующих статьях:
Управление временем существования объекта посредством подсчета ссылок в Windows SDK
Реализация подсчет ссылок в Windows SDK
Правила для управления счетчики ссылок в Windows SDK
Пример
Следующий пример демонстрирует использование 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