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