Udostępnij za pośrednictwem


CSimpleStringT::LockBuffer

Wyłącza odwołanie inwentaryzacji i chroni w buforze ciągu.

PXSTR LockBuffer( );

Wartość zwracana

Wskaźnik do CSimpleStringT obiektu lub ciąg zakończony znakiem null.

Uwagi

Wywołanie tej metody, aby zablokować buforu z CSimpleStringT obiektu.Wywołując LockBuffer, Utwórz kopię ciąg z –1 dla licznika odwołań.Gdy wartość licznika odniesienia jest -1, w buforze ciągu uważana jest w stanie "zablokowana".Która znajduje się w stanie zablokowania ciąg jest chroniony na dwa sposoby:

  • Nie inne ciąg można uzyskać odwołanie do danych w ciągu zablokowane, nawet jeśli ten ciąg jest przypisany do zablokowanej ciąg.

  • Ciąg zablokowane nigdy nie będzie odwoływać innego ciągu, nawet jeśli inne ciągu jest kopiowany do zablokowanej ciąg.

Blokowanie ciąg w buforze, zapewnienia, ciąg hold wyłączności na buforze pozostaną nienaruszone.

Po zakończeniu z LockBuffer, call UnlockBuffer resetowania licznika odwołań do 1.

[!UWAGA]

Jeśli zadzwonisz GetBuffer buforu zablokowane i można ustawić GetBuffer parametr nMinBufferLength większej niż długość buforu bieżącego, utracisz lock buforu.Wywołanie do GetBuffer niszczy bieżący bufor, zamienia bufor o żądanym rozmiarze i resetuje liczbę odwołań do zera.

Aby uzyskać więcej informacji na temat liczenia odniesienia, zobacz następujące artykuły:

Przykład

Poniższy przykład ilustruje użycie CSimpleStringT::LockBuffer.

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

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

Wymagania

Nagłówek: atlsimpstr.h

Zobacz też

Informacje

Klasa CSimpleStringT

CSimpleStringT::ReleaseBuffer