共用方式為


CHString::GetBufferSetLength 方法 (chstring.h)

[ CHString 類別是 WMI 提供者架構的一部分,現在被視為最終狀態,而且不會針對影響這些連結庫的非安全性相關問題使用進一步的開發、增強功能或更新。 MI API 應該用於所有新的開發。]

GetBufferSetLength 方法會傳回 CHString 物件內部字元緩衝區的指標,必要時截斷或增加其長度,以完全符合 nNewLength 中指定的長度。

語法

LPWSTR  throw(CHeap_Exception) GetBufferSetLength(
  int nNewLength
);

參數

nNewLength

CHString 字元緩衝區的確切大小,以字元為單位。

傳回值

傳回物件的 (NULL 終止) 字元緩衝區的 LPWSTR 指標。

備註

傳回的 LPWSTR 指標不是 const,允許直接修改 CHString 內容。

如果您使用 GetBuffer 傳回的指標來變更字串內容,您必須先呼叫 ReleaseBuffer ,才能使用任何其他 CHString 方法。

呼叫 ReleaseBuffer 之後, GetBufferSetLength 所傳回的位址可能無效,因為其他 CHString 作業可能會導致 重新配置 CHString 緩衝區。 如果您未變更 CHString 字串的長度,則不會重新指派緩衝區。 當 CHString 物件終結時,會自動釋放緩衝區內存。

請注意,如果您自行追蹤字串長度,則不應該附加終止 的NULL 字元。 不過,當您使用 ReleaseBuffer 釋放緩衝區時,必須指定最終字串長度。 如果您在呼叫 ReleaseBuffer 時附加終止 NULL 字元,則應該傳遞 –1 (長度的預設) 。 ReleaseBuffer 方法會在緩衝區上呼叫 wcslen 函式,以判斷其長度。

範例

下列程式代碼範例顯示 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 );

規格需求

需求
最低支援的用戶端 Windows Vista
最低支援的伺服器 Windows Server 2008
目標平台 Windows
標頭 chstring.h (include FwCommon.h)
程式庫 FrameDyn.lib
Dll FrameDynOS.dll;FrameDyn.dll

另請參閱

CHString

CHString::GetBuffer

CHString::ReleaseBuffer