Udostępnij za pośrednictwem


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

Zobacz też

Informacje

Klasa CSimpleStringT

CSimpleStringT::GetBufferSetLength

CSimpleStringT::ReleaseBuffer