CString::GetBuffer

LPTSTR GetBuffer ( int nMinBufLength );
rzut ( CMemoryException );

Wartość zwracany

Wskaźnik LPTSTR obiektu znaków (zakończona znakiem null) bufor.

Parametry

nMinBufLength

Minimalny rozmiar buforu znaków w znakach. Ta wartość nie obejmuje wpisanie wartości null terminator.

Uwagi

Zwraca wskaźnik do buforu wewnętrznego znaków dla obiektu CString . Zwracane LPTSTR nie jest Stała i tym samym pozwala na bezpośrednie modyfikacji zawartości CString.

Jeśli używasz wskaźnik zwracany przez GetBuffer aby zmienić zawartość ciąg, należy wywołać ReleaseBuffer przed użyciem wszelkich innych funkcji, członek CString.

Adres zwrócony przez GetBuffer nie może być ważne po wywołaniu ReleaseBuffer ponieważ dodatkowych operacji CString może spowodować CString buforu odbiorczego. Bufor nie zostaną przeniesione, jeśli nie zmienia się długość CString.

Pamięci buforu zostanie zwolniona automatycznie kiedy niszczony jest obiekt CString.

Należy zauważyć, że jeśli można przechowywać śledzić ich długość ciągu samodzielnie, można powinna nie dołączyć kończącego znaku null. Jednak musi określić długości ciąg końcowy podczas zwalniania buforu z ReleaseBuffer. Jeśli dołączyć kończącego znaku null, –1 dla długości należy przekazać do ReleaseBuffer i ReleaseBuffer będzie wykonywać strlen na buforu w celu ustalenia jego długość.

Przykład

Poniższy przykład demonstruje użycie CString::GetBuffer.

/ / przykład CString::GetBuffer
CString s ("abcd");
#ifdef _DEBUG
afxDump lt; < "CString s" << s << "" \n";
#ENDIF
LPTSTR p = s.GetBuffer (10);
strcpy (p, "Hello");   / / bezpośredniego dostępu buforu CString
s.ReleaseBuffer ();
#ifdef _DEBUG
afxDump << "CString s" << s << "" \n";
#ENDIF

Omówienie CString |nbsp; Klasa członków | Wykres hierarchii

Zobacz też CString::GetBufferSetLength, CString::ReleaseBuffer

Index