GetBuffer 与 ReleaseBuffer

LPCWSTR GetBuffer(
  int nMinBufLength
) throw (CHeap_Exception);
Parameters
nMinBufLength

The minimum size of the character buffer in characters. This value does not include space for a NULL terminator.

Return Value

An LPWSTR pointer to the object's (NULL-terminated) character buffer.

 

Remarks

The returned LPWSTR is not const and therefore allows direct modification of CHString contents.

If you use the pointer returned by GetBuffer to change the string contents, you must call ReleaseBuffer before using any other CHString methods.

After a call to ReleaseBuffer, the address returned by GetBuffer may not be valid because additional CHString operations can cause the CHString buffer to be reallocated. If you do not change the length of the CHString string, the buffer is not reallocated. The buffer memory is freed automatically when the CHString object is destroyed.

Note that if you keep track of the string length yourself, you should not append the terminating NULL character. You must, however, specify the final string length when you release the buffer with ReleaseBuffer. If you do append a terminating NULL character, you should pass –1 for the length to ReleaseBuffer, which calls wcslen on the buffer to determine its length.

 

        GetBuffer可以得到Cstring对象的字符串指针,并且此指针所指内容可以修改。当Cstring对象被析构时GetBuffer()得到的内存空间将会被自动释放。

        按MSDN的意思,GetBuffer之后如果不再使用此对象,则可以不用ReleaseBuffer。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值