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