Sdílet prostřednictvím


CSimpleStringT::LockBuffer

Zakáže počítání odkazů a chrání řetězcem do vyrovnávací paměti.

PXSTR LockBuffer( );

Vrácená hodnota

Ukazatel CSimpleStringT objektu nebo řetězec zakončený hodnotou null.

Poznámky

Tato metoda zamknout vyrovnávací paměť o volání CSimpleStringT objektu.Voláním LockBuffer , vytvořit kopii řetězce, s –1 pro počet odkazů.Při výpočtu referenční hodnotu -1, řetězcem do vyrovnávací paměti je považován za "uzamčenou" státu.Řetězec je v uzamčeném stavu chráněn dvěma způsoby:

  • Žádný jiný řetězec můžete získat odkaz na data v uzamčené řetězec, i když tento řetězec je přiřazena uzamčené řetězec.

  • Uzamčené řetězec nikdy odkazuje jiný řetězec i v případě, že jiný řetězec je zkopírován do uzamčené řetězec.

Uzamčením řetězec ve vyrovnávací paměti je zajistit výhradní držet řetězec ve vyrovnávací paměti zůstanou beze změny.

Po dokončení s LockBuffer , volání UnlockBuffer obnovit počet odkazů na 1.

[!POZNÁMKA]

Při volání GetBuffer na uzamčené vyrovnávací paměti a můžete nastavit GetBuffer parametr nMinBufferLength větší než délka vyrovnávací paměti aktuální, ztratíte zamknout vyrovnávací paměť.Volání na GetBuffer ničí aktuální vyrovnávací paměti, nahradí je požadovaná velikost vyrovnávací paměti a obnoví počet odkazů na nulu.

Další informace o počítání odkazů naleznete v následujících článcích:

Příklad

Následující příklad ukazuje použití CSimpleStringT::LockBuffer .

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

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

Požadavky

Záhlaví: atlsimpstr.h

Viz také

Referenční dokumentace

Třída CSimpleStringT

CSimpleStringT::ReleaseBuffer