Bagikan melalui


CHString::GetBufferSetLength method (chstring.h)

[Kelas CHString adalah bagian dari Kerangka Kerja Penyedia WMI yang sekarang dipertimbangkan dalam status akhir, dan tidak ada pengembangan, peningkatan, atau pembaruan lebih lanjut yang akan tersedia untuk masalah terkait non-keamanan yang memengaruhi pustaka ini. API MI harus digunakan untuk semua pengembangan baru.]

Metode GetBufferSetLength mengembalikan penunjuk ke buffer karakter internal untuk objek CHString , memotong atau meningkatkan panjangnya jika perlu agar sama persis dengan panjang yang ditentukan dalam nNewLength.

Sintaks

LPWSTR  throw(CHeap_Exception) GetBufferSetLength(
  int nNewLength
);

Parameter

nNewLength

Ukuran buffer karakter CHString yang tepat, diukur dalam karakter.

Nilai kembali

Mengembalikan penunjuk LPWSTR ke buffer karakter objek (DIHENTIKAN NULL).

Keterangan

Penunjuk LPWSTR yang dikembalikan, yang bukan const, memungkinkan modifikasi langsung konten CHString .

Jika Anda menggunakan penunjuk yang dikembalikan oleh GetBuffer untuk mengubah konten string, Anda harus memanggil ReleaseBuffer sebelum menggunakan metode CHString lainnya.

Setelah panggilan ke ReleaseBuffer, alamat yang dikembalikan oleh GetBufferSetLength mungkin tidak valid karena operasi CHString tambahan dapat menyebabkan buffer CHString direalokasikan. Jika Anda tidak mengubah panjang string CHString , buffer tidak ditetapkan ulang. Memori buffer dikosongkan secara otomatis ketika objek CHString dihancurkan.

Perhatikan bahwa jika Anda melacak sendiri panjang string, Anda tidak boleh menambahkan karakter NULL yang mengakhiri. Namun, Anda harus menentukan panjang string akhir saat merilis buffer dengan ReleaseBuffer. Jika Anda menambahkan karakter NULL yang mengakhiri saat memanggil ReleaseBuffer, Anda harus meneruskan -1 (default) untuk panjangnya. Metode ReleaseBuffer memanggil fungsi wcslen pada buffer untuk menentukan panjangnya.

Contoh

Contoh kode berikut menunjukkan penggunaan 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 );

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista
Server minimum yang didukung Windows Server 2008
Target Platform Windows
Header chstring.h (termasuk FwCommon.h)
Pustaka FrameDyn.lib
DLL FrameDynOS.dll; FrameDyn.dll

Lihat juga

CHString

CHString::GetBuffer

CHString::ReleaseBuffer