CSimpleStringT::LockBuffer

禁用引用计数并防止在缓冲区的字符串。

PXSTR LockBuffer( );

返回值

CSimpleStringT 对象或一个Null终止的字符串的指针。

备注

调用此方法锁定 CSimpleStringT 对象的缓冲区。通过调用 LockBuffer,使用引用计数的a-1创建字符串的副本。当引用绑定值是-1,则缓冲区的字符串会将“锁定”状态。当一个锁定状态,字符串保护有两种方法时:

  • 其他字符串无法获取对该锁定的字符串数据,因此,即使该字符串分配给锁定的字符串。

  • 这个锁定的字符串不会引用另一个字符串,因此,即使该其他字符串复制到该锁定的字符串。

通过锁定缓冲区的字符串,则确保缓冲区的字符串的独占保存且将保持。

在您完成 LockBuffer后,调用 UnlockBuffer 重置引用计数为1。

说明说明

如果对锁定缓冲区的 GetBuffer,并可以比当前缓冲区的长度设置 GetBuffer 参数 nMinBufferLength 到大,则会丢失缓冲区锁。为 GetBuffer 这样的调用销毁当前缓冲区,使用该请求大小的缓冲区替换它,并重置引用计数为零。

有关的更多信息引用计数,请参见以下文章:

示例

下面的示例说明 CSimpleStringT::LockBuffer 的用法。

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

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

要求

Header: atlsimpstr.h

请参见

参考

CSimpleStringT选件类

CSimpleStringT::ReleaseBuffer