Этот метод выпускает буфер, содержание которого, полученое через функцию GetBuffer, изменялось. Если Вы уверены, что строка в буфере с нулевым символом в конце, Вы можете опуститьnNewLength параметр. Если ваша строка не с нулевым символом в конце, используйте nNewLength, чтобы определить его длину. Адрес, возвращенный GetBuffer некоректен после запроса к ReleaseBuffer или любой другой операции CString.
void ReleaseBuffer(
int nNewLength = -1 );
nNewLength
Определяет новую длину строки в символах, не считая нулевой признак конца. Если строка с нулевым символом в конце, то -1 (значение по умолчанию) устанавливает размер CString на текущую длину строки.
Следующий пример демонстрирует использование CString::ReleaseBuffer.
// пример для CString:: ReleaseBuffer
CString s;
s = "abc";
LPTSTR p = s.GetBuffer( 1024 );
strcpy(p, "abc"); // используют буфер непосредственно
ASSERT( s.GetLength() == 3 ); // Строковая длина = 3
s. ReleaseBuffer (); // Избыточная память выпущена , p теперь недопустим.
ASSERT( s.GetLength() == 3 ); // Длина все еще 3