GetBuffer()主要作用是將字符串的緩沖區(qū)長(zhǎng)度鎖定,releaseBuffer則是解除鎖定,使得
CString對(duì)象在以后的代碼中繼續(xù)可以實(shí)現(xiàn)長(zhǎng)度自適應(yīng)增長(zhǎng)的功能。
是否需要在GetBufer后面調(diào)用ReleaseBuffer(),是根據(jù)你的后面的程序是否需要繼續(xù)使用該字符串變量,并且是否動(dòng)態(tài)改變其長(zhǎng)度而定的。不是什么好地編程習(xí)慣,之類的原因。
如果你
GetBuffer以后程序自函數(shù)就退出,局部變量都不存在了,調(diào)用不掉用ReleaseBuffer沒(méi)什么意義了。
但如果你出現(xiàn)例如下面的代碼
CString m_strA;
m_strA=_T( "123456 ");
m_strA.
GetBuffer(6);
m_strA+=_T( "789 ");//此時(shí)就會(huì)出錯(cuò)了,因?yàn)樾枰獎(jiǎng)討B(tài)加長(zhǎng)字符串長(zhǎng)度