CSimpleStringT::LockBuffer
Deaktiviert Verweiszählung und schützt die Zeichenfolge im Puffer.
PXSTR LockBuffer( );
Rückgabewert
Ein Zeiger auf einen CSimpleStringT-Objekt oder eine auf NULL endende Zeichenfolge.
Hinweise
Rufen Sie diese Methode auf, um den Puffer des CSimpleStringT-Objekts zu sperren. Mit LockBuffer aufrufen, erstellen Sie eine Kopie der Zeichenfolge, mit einer von 1 für den Verweiszähler. Wenn der Verweiszählerwert -1 ist, wird die Zeichenfolge im Puffer betrachtet, in einem "gesperrten" Zustand befindet. Während in einem gesperrten Zustand, wird die Zeichenfolge auf zwei Arten geschützt:
Keine andere Zeichenfolge kann einen Verweis auf die Daten in der gesperrten Zeichenfolge abrufen, auch wenn diese Zeichenfolge an die gesperrten Zeichenfolge zugewiesen wird.
Die gesperrte Zeichenfolge verweist nie eine andere Zeichenfolge, auch wenn diese andere Zeichenfolge zur gesperrten Zeichenfolge kopiert wird.
Indem Sie die Zeichenfolge im Puffer sperren, stellen Sie sicher, dass der exklusive Griff der Zeichenfolge im Puffer intakt bleibt.
Nachdem Sie mit LockBuffer beendet haben, rufen Sie UnlockBuffer auf, um den Verweiszähler auf 1. zurückzusetzen.
Hinweis
Wenn Sie GetBuffer auf einem gesperrten Puffer und Ihnen aufrufen, die dem GetBuffer-Parameter nMinBufferLength zu größer als die Länge des aktuellen Puffers festgelegt werden, verlieren Sie die Puffersperre.Ein solcher Aufruf GetBuffer zerstört den aktuellen Puffer, ersetzt ihn durch einen Puffer der angeforderte Größe und setzt den Verweiszähler auf null zurück.
Weitere Informationen zur Verweiszählung, finden Sie:
Verwalten von Objekt-Lebensdauern durch Verweiszählung in Windows SDK
Implementieren von Verweiszählung in Windows SDK
Regeln zum Verwalten von Verweiszählern in Windows SDK
Beispiel
Das folgende Beispiel veranschaulicht die Verwendung von CSimpleStringT::LockBuffer.
CSimpleString str(_T("Hello"), pMgr);
TCHAR ch;
str.LockBuffer();
ch = str.GetAt(2);
_tprintf_s(_T("%c"), ch);
str.UnlockBuffer();
Anforderungen
Header: atlsimpstr.h