CSimpleStringT::LockBuffer
禁用引用计数并防止在缓冲区的字符串。
PXSTR LockBuffer( );
返回值
为 CSimpleStringT 对象或一个Null终止的字符串的指针。
备注
调用此方法锁定 CSimpleStringT 对象的缓冲区。通过调用 LockBuffer,使用引用计数的a-1创建字符串的副本。当引用绑定值是-1,则缓冲区的字符串会将“锁定”状态。当一个锁定状态,字符串保护有两种方法时:
其他字符串无法获取对该锁定的字符串数据,因此,即使该字符串分配给锁定的字符串。
这个锁定的字符串不会引用另一个字符串,因此,即使该其他字符串复制到该锁定的字符串。
通过锁定缓冲区的字符串,则确保缓冲区的字符串的独占保存且将保持。
在您完成 LockBuffer后,调用 UnlockBuffer 重置引用计数为1。
说明 |
---|
如果对锁定缓冲区的 GetBuffer,并可以比当前缓冲区的长度设置 GetBuffer 参数 nMinBufferLength 到大,则会丢失缓冲区锁。为 GetBuffer 这样的调用销毁当前缓冲区,使用该请求大小的缓冲区替换它,并重置引用计数为零。 |
有关的更多信息引用计数,请参见以下文章:
在 Windows SDK的托管对象生存期通过引用计数
在 Windows SDK的实现引用计数
在 Windows SDK的托管规则集引用计数
示例
下面的示例说明 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