首先说明一点,ReleaseBuffer()作用不是释放空间。无论如何使用CString,都不需要用户手动去释放它的缓冲区。
如果我们需要对CString字符缓冲区直接操作时,使用GetBuffer()获得缓冲区指针。注意操作时字符串必须以'\0'结尾。操作后,调用CString其它成员函数之前必须调用ReleaseBuffer()。特别是字符串长度改变后,如果没有ReleaseBuffer(),CString中其它数据成员比如字符长度将不会更新,导致结果错误或出现异常。
首先说明一点,ReleaseBuffer()作用不是释放空间。无论如何使用CString,都不需要用户手动去释放它的缓冲区。
如果我们需要对CString字符缓冲区直接操作时,使用GetBuffer()获得缓冲区指针。注意操作时字符串必须以'\0'结尾。操作后,调用CString其它成员函数之前必须调用ReleaseBuffer()。特别是字符串长度改变后,如果没有ReleaseBuffer(),CString中其它数据成员比如字符长度将不会更新,导致结果错误或出现异常。