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 |