CSimpleStringT::GetBuffer
Zwraca wskaźnik do buforu wewnętrznego znaków dla CSimpleStringT obiektu.
PXSTR GetBuffer(
int nMinBufferLength
);
PXSTR GetBuffer();
Parametry
nMinBufferLength
Minimalna liczba znaków, które może pomieścić bufor znaków.Wartość ta nie obejmuje miejsce null terminator.Jeśli nMinBufferLength jest większa niż długość buforu bieżącego GetBuffer niszczy bieżący bufor, zamienia bufor o żądanym rozmiarze i resetuje obiektu licznika odwołań do zera.Jeśli wcześniej wywołano LockBuffer w tym buforze tracisz lock buforu.
Wartość zwracana
PXSTR Wskaźnik do obiektu znaku (zakończona znakiem null) bufor.
Uwagi
Wywołanie tej metody zwracają zawartość buforu CSimpleStringT obiektu.Zwrócony PXSTR nie jest stała i dlatego umożliwia bezpośrednie modyfikacja CSimpleStringT zawartość.
Użycie wskaźnika zwrócony przez GetBuffer , aby zmienić zawartość ciągu, należy wywołać ReleaseBuffer przed użyciem wszelkich innych CSimpleStringT Członkowskich metod.
Adres zwrócony przez GetBuffer może być nieprawidłowy po wywołaniu ReleaseBuffer ponieważ dodatkowe CSimpleStringT operacji może spowodować CSimpleStringT buforu.Bufor nie alokowaniu Jeśli nie zmienisz długość CSimpleStringT.
Pamięci buforu jest automatycznie zwolniony, gdy CSimpleStringT niszczony jest obiekt.
Można zachować o długości ciągu samodzielnie, nie należy dołączać kończącego znaku null.Jednakże, należy określić długość ciąg końcowy po zwolnieniu buforu z ReleaseBuffer.Jeśli dołączanie kończącego znaku null, należy przekazać –1 (domyślnie) dla długości.ReleaseBufferOkreśla długość buforu.
Jeśli brak pamięci do spełnienia GetBuffer wniosek, ta metoda generuje CMemoryException *.
Przykład
CSimpleString s(_T("abcd"), pMgr);
LPTSTR pBuffer = s.GetBuffer(10);
int sizeOfBuffer = s.GetAllocLength();
// Directly access CSimpleString buffer
_tcscpy_s(pBuffer, sizeOfBuffer, _T("Hello"));
ASSERT(_tcscmp(s, _T("Hello")) == 0);
s.ReleaseBuffer();
Wymagania
Nagłówek: atlsimpstr.h