次の方法で共有


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 によって返されるポインターを使用して文字列の内容を変更する場合は、他の CHString メソッドを使用する前に ReleaseBuffer を呼び出す必要があります。

ReleaseBuffer の呼び出し後、追加の CHString 操作によって CHString バッファーが再割り当てされる可能性があるため、GetBufferSetLength によって返されるアドレスが無効になる可能性があります。 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 (FwCommon.h を含む)
Library FrameDyn.lib
[DLL] FrameDynOS.dll;FrameDyn.dll

こちらもご覧ください

CHString

CHString::GetBuffer

CHString::ReleaseBuffer