Partilhar via


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 terminador

    Se 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

Consulte também

Referência

Classe de CSimpleStringT

CSimpleStringT::GetBufferSetLength

CSimpleStringT::ReleaseBuffer