次の方法で共有


CSimpleStringT::LockBuffer

参照カウントを無効にし、バッファー内の文字列を保護します。

PXSTR LockBuffer( );

戻り値

CSimpleStringT オブジェクトまたは NULL で終わる文字列へのポインター。

解説

CSimpleStringT オブジェクトのバッファーをロックするには、このメソッドを呼び出します。 LockBuffer を呼び出すと、文字列のコピーが生成されます。このコピーの参照カウントは –1 です。 参照カウントの値が -1 の場合、バッファー内の文字列は "ロックされた" 状態であると認識されます。 ロックされた状態の文字列は、次の 2 つの面で保護されます。

  • ロックされている文字列に割り当てられている文字列を含め、他の文字列は、ロックされた文字列データへの参照を取得できません。

  • ロックされた文字列にコピーされた文字列を含め、他の文字列は、ロックされた文字列データから参照されません。

バッファー内の文字列をロックすると、その文字列はバッファー内で排他的にそのままの状態で保持されます。

LockBuffer の使用後は、UnlockBuffer を呼び出して参照カウントを 1 にリセットしてください。

注意

ロックされているバッファーに対して GetBuffer を呼び出す場合、GetBuffer のパラメーター nMinBufferLength に対象バッファーのサイズを超える値を設定すると、バッファーのロックは無効になります。 その結果、現在のバッファーは GetBuffer によって破棄され、要求されたサイズのバッファーが新しく割り当てられると共に、参照カウントが 0 にリセットされます。

参照カウントの詳細については、次のトピックを参照してください。

使用例

次の例は CSimpleStringT::LockBuffer の使い方を示しています。

CSimpleString str(_T("Hello"), pMgr);
TCHAR ch;

str.LockBuffer();
ch = str.GetAt(2);
_tprintf_s(_T("%c"), ch);
str.UnlockBuffer();

必要条件

**ヘッダー:**atlsimpstr.h

参照

参照

CSimpleStringT クラス

CSimpleStringT::ReleaseBuffer

その他の技術情報

CSimpleStringT のメンバー