Freigeben über


CHString::GetBufferSetLength-Methode (chstring.h)

[Die Klasse CHString ist Teil des WMI-Provider-Frameworks, das nun als endgültig betrachtet wird, und es sind keine weiteren Entwicklungen, Verbesserungen oder Updates für nicht sicherheitsrelevante Probleme verfügbar, die diese Bibliotheken betreffen. Die MI-APIs sollten für alle Neuentwicklungen verwendet werden.]

Die GetBufferSetLength-Methode gibt einen Zeiger auf den internen Zeichenpuffer für das CHString-Objekt zurück, wobei die Länge bei Bedarf gekürzt oder erhöht wird, um genau der in nNewLength angegebenen Länge zu entsprechen.

Syntax

LPWSTR  throw(CHeap_Exception) GetBufferSetLength(
  int nNewLength
);

Parameter

nNewLength

Exakte Größe des CHString-Zeichenpuffers , gemessen in Zeichen.

Rückgabewert

Gibt einen LPWSTR-Zeiger auf den (NULL-beendeten) Zeichenpuffer des Objekts zurück.

Hinweise

Der zurückgegebene LPWSTR-Zeiger , der nicht const ist, ermöglicht eine direkte Änderung von CHString-Inhalten .

Wenn Sie den von GetBuffer zurückgegebenen Zeiger verwenden, um den Zeichenfolgeninhalt zu ändern, müssen Sie ReleaseBuffer aufrufen, bevor Sie andere CHString-Methoden verwenden.

Nach einem Aufruf von ReleaseBuffer ist die von GetBufferSetLength zurückgegebene Adresse möglicherweise ungültig, da zusätzliche CHString-Vorgänge dazu führen können, dass der CHString-Puffer neu zugewiesen wird. Wenn Sie die Länge der CHString-Zeichenfolge nicht ändern, wird der Puffer nicht neu zugewiesen. Der Pufferspeicher wird automatisch freigegeben, wenn das CHString-Objekt zerstört wird.

Beachten Sie, dass Sie das beendende NULL-Zeichen nicht anfügen sollten, wenn Sie die Länge der Zeichenfolge selbst nachverfolgen. Sie müssen jedoch die endgültige Zeichenfolgenlänge angeben, wenn Sie den Puffer mit ReleaseBuffer freigeben. Wenn Sie beim Aufrufen von ReleaseBuffer ein beendendes NULL-Zeichen anfügen, sollten Sie –1 (standard) für die Länge übergeben. Die ReleaseBuffer-Methode ruft die funktion wcslen für den Puffer auf, um dessen Länge zu bestimmen.

Beispiele

Das folgende Codebeispiel zeigt die Verwendung von 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 );

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile chstring.h (einschließlich FwCommon.h)
Bibliothek FrameDyn.lib
DLL FrameDynOS.dll; FrameDyn.dll

Weitere Informationen

CHString

CHString::GetBuffer

CHString::ReleaseBuffer