CSimpleStringT::GetBuffer
Retorna um ponteiro para o buffer interno de caracteres para o objeto de CSimpleStringT .
PXSTR GetBuffer(
int nMinBufferLength
);
PXSTR GetBuffer();
Parâmetros
nMinBufferLength
O número mínimo de caracteres que o buffer de caracteres pode conter.Esse valor não inclui espaço para zero. um terminadorSe nMinBufferLength é maior do que o comprimento do buffer atual, GetBuffer destrói o buffer atual, substituí-lo com um buffer de tamanho requerido, e redefinir-lo contagem de referência de objeto como zero.Se você tiver chamado anteriormente em este LockBuffer buffer, você perde o bloqueio de buffer.
Valor de retorno
Um ponteiro de PXSTR ao buffer de caracteres do objeto (NULL- encerrado.)
Comentários
Chamar este método para retornar o conteúdo do buffer de objeto de CSimpleStringT .PXSTR retornado não é uma constante e portanto não permite modificação direta de conteúdo de CSimpleStringT .
Se você usar o ponteiro retornado por GetBuffer para modificar o conteúdo da cadeia de caracteres, você deve chamar ReleaseBuffer antes de usar todos os outros métodos de membro de CSimpleStringT .
O endereço retornado por GetBuffer não pode ser válido após a chamada a ReleaseBuffer como as operações adicionais de CSimpleStringT podem causar o buffer de CSimpleStringT a ser realocado.o buffer não é realocado se você não altera o comprimento de CSimpleStringT.
Buffer da memória é liberada automaticamente quando o objeto de CSimpleStringT é destruído.
Se você mantém o par de comprimento da cadeia de caracteres você mesmo, você não deve acrescentar o caractere de terminação zero.Em o entanto, você deve especificar o tamanho final da cadeia de caracteres quando liberar o buffer com ReleaseBuffer.Se você acrescenta um caractere nulo de terminação, você deve passar – 1 (o padrão) para o comprimento.ReleaseBuffer determina o tamanho do buffer.
Se houver uma insuficiente memória para satisfazer a solicitação de GetBuffer , este método gera um CMemoryException*.
Exemplo
CSimpleString s(_T("abcd"), pMgr);
LPTSTR pBuffer = s.GetBuffer(10);
int sizeOfBuffer = s.GetAllocLength();
// Directly access CSimpleString buffer
_tcscpy_s(pBuffer, sizeOfBuffer, _T("Hello"));
ASSERT(_tcscmp(s, _T("Hello")) == 0);
s.ReleaseBuffer();
Requisitos
Cabeçalho: atlsimpstr.h