Condividi tramite


CSimpleStringT::GetBuffer

Restituisce un puntatore a un buffer di caratteri interno dell'oggetto CSimpleStringT.

PXSTR GetBuffer(
   int nMinBufferLength
);
PXSTR GetBuffer();

Parametri

  • nMinBufferLength
    Il numero minimo di caratteri dal buffer di caratteri possibile utilizzare.Questo valore non include lo spazio per un terminatore null.

    Se nMinBufferLength è maggiore della lunghezza del buffer corrente, GetBuffer elimina il buffer corrente, viene sostituito con un buffer di dimensione richiesta e reimposta il conteggio di riferimento oggetto su zero.Se è stato precedentemente chiamato LockBuffer nel buffer, si perde il blocco del buffer.

Valore restituito

Un puntatore PXSTR al buffer di caratteri (a terminazione null) dell'oggetto.

Note

Chiamare questo metodo per restituire il contenuto del buffer dell'oggetto CSimpleStringT.PXSTR restituito non è una costante e non consente la modifica diretta del contenuto CSimpleStringT.

Se si posiziona il puntatore restituito da GetBuffer per modificare il contenuto della stringa, è necessario chiamare ReleaseBuffer prima di utilizzare tutti gli altri metodi membri CSimpleStringT.

L'indirizzo restituito da GetBuffer 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 ridistribuito 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 è necessario aggiungere il carattere di terminazione null.Tuttavia, è necessario specificare la lunghezza della stringa quando si rilascia il buffer con ReleaseBuffer.Se si aggiungono un carattere di terminazione null, passare a 1 (impostazione predefinita) per la lunghezza.ReleaseBuffer quindi determina la lunghezza del buffer.

Se vi è memoria sufficiente per soddisfare la richiesta GetBuffer, genera questo metodo di un CMemoryException*.

Esempio

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();   

Requisiti

intestazione: atlsimpstr.h

Vedere anche

Riferimenti

Classe di CSimpleStringT

CSimpleStringT::GetBufferSetLength

CSimpleStringT::ReleaseBuffer