CSimpleStringT::GetBufferSetLength
Zwraca wskaźnik do buforu wewnętrznego znaków dla CSimpleStringT obiektu, obcinanie lub jego długość uprawy, w razie potrzeby dokładnie odpowiada długości określonej w nLength.
PXSTR GetBufferSetLength(
int nLength
);
Parametry
- nLength
Dokładny rozmiar CSimpleStringT znak bufora w znakach.
Wartość zwracana
A PXSTR wskaźnik do obiektu znaku (zakończona znakiem null) bufor.
Uwagi
Wywołanie tej metody pobrania wewnętrznego buforu o określonej długości CSimpleStringT obiektu.Zwrócony PXSTR wskaźnik nie jest const i tym samym pozwala na bezpośrednie modyfikacja CSimpleStringT zawartość.
Użycie wskaźnika zwrócony przez GetBufferSetLength Aby zmienić zawartość ciąg, wywołać ReleaseBuffer zaktualizować stan wewnętrzny CsimpleStringT przed użyciem wszelkich innych CSimpleStringT metody.
Adres zwrócony przez GetBufferSetLength może być nieprawidłowy po wywołaniu ReleaseBuffer ponieważ dodatkowe CSimpleStringT operacji może spowodować CSimpleStringT buforu.Bufor nie jest przypisywana ponownie, jeśli nie zmienisz długość CSimpleStringT.
Pamięci buforu jest automatycznie zwolniony, gdy CSimpleStringT niszczony jest obiekt.
Jeśli można przechowywać informacje o długość ciągu samodzielnie, nie nie dodają kończącego znaku null.Należy określić długość ciąg końcowy po zwolnieniu bufor za pomocą ReleaseBuffer.Jeśli dołączanie kończącego znaku null podczas wywołania ReleaseBuffer, przekazać –1 (domyślnie) dla długości do ReleaseBuffer, i ReleaseBuffer będzie wykonywać strlen na bufor do ustalenia jego długości.
Aby uzyskać więcej informacji na temat liczenia odniesienia, zobacz następujące artykuły:
Zarządzanie istnienia obiektu poprzez liczenie odniesienia w Windows SDK*.*
Wykonawczych zliczania odniesienia w Windows SDK*.*
Zasady zarządzania zliczanie odwołań w Windows SDK*.*
Przykład
Poniższy przykład ilustruje użycie CSimpleStringT::GetBufferSetLength.
CSimpleString str(pMgr);
LPTSTR pstr = str.GetBufferSetLength(3);
pstr[0] = _T('C');
pstr[1] = _T('u');
pstr[2] = _T('p');
// No need for trailing zero or call to ReleaseBuffer()
// because GetBufferSetLength() set it for us.
str += _T(" soccer is best!");
ASSERT(_tcscmp(str, _T("Cup soccer is best!")) == 0);
Wymagania
Nagłówek: atlsimpstr.h