CSimpleStringT::GetBufferSetLength
Restituisce un puntatore a un buffer di caratteri interno dell'oggetto CSimpleStringT, troncante o coltivante la lunghezza se necessario corrispondano esattamente alla lunghezza specificata in nLength.
PXSTR GetBufferSetLength(
int nLength
);
Parametri
- nLength
Le dimensioni esatte del buffer di caratteri CSimpleStringT in caratteri.
Valore restituito
Un puntatore PXSTR al buffer di caratteri (a terminazione null) dell'oggetto.
Note
Chiamare questo metodo per recuperare una lunghezza specifica del buffer interno dell'oggetto CSimpleStringT.Il puntatore restituito PXSTR non è const e non consente la modifica diretta del contenuto CSimpleStringT.
Se si posiziona il puntatore restituito da GetBufferSetLength per modificare il contenuto della stringa, denominata ReleaseBuffer per aggiornare lo stato interno CsimpleStringTprima di utilizzare tutti gli altri metodi CSimpleStringT.
L'indirizzo restituito da GetBufferSetLength potrebbe non essere valido dopo la chiamata a ReleaseBuffer perché le operazioni aggiuntive CSimpleStringT possono causare il buffer CSimpleStringT a essere ridistribuito.Il buffer non viene riposizionato se non si modifica la lunghezza CSimpleStringT.
La memoria di transito automaticamente liberata quando l'oggetto CSimpleStringT viene eliminato.
Se si tenere traccia della lunghezza della stringa manualmente, non aggiungere il carattere di terminazione null.È necessario specificare la lunghezza della stringa quando si rilascia il buffer tramite ReleaseBuffer.Se si aggiungono un carattere di terminazione null quando si chiama ReleaseBuffer, sessione e 1 (impostazione predefinita) per la lunghezza ReleaseBuffere ReleaseBuffer eseguiranno strlen nel buffer per determinare la lunghezza.
Per ulteriori informazioni su conteggio, vedere i seguenti articoli:
Gestire le durate degli oggetti con conteggio dei riferimenti in Windows SDK*.*
Implementare conteggio dei riferimenti in Windows SDK*.*
Regole per gestire i conteggi dei riferimenti in Windows SDK*.*
Esempio
Nell'esempio seguente viene illustrato l'utilizzo di 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);
Requisiti
intestazione: atlsimpstr.h