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 |