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:
Správa životnosti objektu pomocí počítání odkazů vWindows SDK
Provádění počítání odkazů vWindows SDK
Pravidla pro správu počty odkazů vWindows SDK
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