Condividi tramite


Metodo CHString::GetBufferSetLength (chstring.h)

[La classe CHString fa parte di WMI Provider Framework, che viene ora considerata in stato finale e non saranno disponibili ulteriori sviluppi, miglioramenti o aggiornamenti per problemi non correlati alla sicurezza che interessano queste librerie. Le API MI devono essere usate per tutti i nuovi sviluppi.

Il metodo GetBufferSetLength restituisce un puntatore al buffer di caratteri interno per l'oggetto CHString , troncando o aumentandone la lunghezza, se necessario, in modo che corrisponda esattamente alla lunghezza specificata in nNewLength.

Sintassi

LPWSTR  throw(CHeap_Exception) GetBufferSetLength(
  int nNewLength
);

Parametri

nNewLength

Dimensioni esatte del buffer di caratteri CHString , misurate in caratteri.

Valore restituito

Restituisce un puntatore LPWSTR al buffer di caratteri (con terminazione NULL) dell'oggetto.

Commenti

Il puntatore LPWSTR restituito, che non è const, consente la modifica diretta del contenuto CHString .

Se si usa il puntatore restituito da GetBuffer per modificare il contenuto della stringa, è necessario chiamare ReleaseBuffer prima di usare qualsiasi altro metodo CHString .

Dopo una chiamata a ReleaseBuffer, l'indirizzo restituito da GetBufferSetLength potrebbe non essere valido perché altre operazioni CHString possono causare la riallocazione del buffer CHString . Se non si modifica la lunghezza della stringa CHString , il buffer non viene riassegnato. La memoria buffer viene liberata automaticamente quando l'oggetto CHString viene eliminato definitivamente.

Si noti che se si tiene traccia della lunghezza della stringa manualmente, non è consigliabile aggiungere il carattere NULL di terminazione. È tuttavia necessario specificare la lunghezza finale della stringa quando si rilascia il buffer con ReleaseBuffer. Se si aggiunge un carattere NULL di terminazione quando si chiama ReleaseBuffer, è necessario passare –1 (impostazione predefinita) per la lunghezza. Il metodo ReleaseBuffer chiama la funzione wcslen nel buffer per determinarne la lunghezza.

Esempio

Nell'esempio di codice seguente viene illustrato l'uso di CHString::GetBufferSetLength.

CHString str;
LPWSTR pstr = str.GetBufferSetLength(3);
pstr[0] = 'I';
pstr[1] = 'c';
pstr[2] = 'e';

// No need for trailing zero or call to ReleaseBuffer()
// because GetBufferSetLength() set it for you.

str += " hockey is best!";
printf( "str: %S\n", (LPCWSTR)str );

Requisiti

Requisito Valore
Client minimo supportato Windows Vista
Server minimo supportato Windows Server 2008
Piattaforma di destinazione Windows
Intestazione chstring.h (include FwCommon.h)
Libreria FrameDyn.lib
DLL FrameDynOS.dll; FrameDyn.dll

Vedi anche

CHString

CHString::GetBuffer

CHString::ReleaseBuffer