Compartilhar via


CSimpleStringT::GetBuffer

Retorna um ponteiro para o buffer interno de caractere para a CSimpleStringT objeto.

PXSTR GetBuffer(
   int nMinBufferLength
);
PXSTR GetBuffer( );

Parâmetros

  • nMinBufferLength
    O dimensionar mínimo do buffer de caractere em caractere.Esse valor não inclui espaço para um terminador nulo.

Valor de retorno

An PXSTR ponteiro para o buffer de caractere (terminação nula) do objeto.

Comentários

telefonar Esse método para retornar o Sumário do buffer do CSimpleStringT objeto. O retornadoPXSTR não é Const e, portanto, permite a modificação direta do CSimpleStringT Sumário.

Observação:

Se nMinBufferLength é maior do que o comprimento do buffer corrente, a telefonar para GetBuffer destrói o buffer corrente, substituindo-o por um buffer de dimensionar solicitado e redefinir a contagem de referência como zero. Se você anteriormente tiver chamado LockBuffer nesse buffer, você perderá bloquear do buffer.

Se você usar o ponteiro retornado por GetBuffer Para alterar o Sumário de seqüência de caracteres, você deve chamar ReleaseBuffer antes de usar outros CSimpleStringT métodos de membro.

O endereço retornado por GetBuffer pode não ser válida após a telefonar para ReleaseBuffer porque adicionais CSimpleStringT as operações podem fazer com que o CSimpleStringT buffer para ser realocado. O buffer não é realocado se você não alterar o comprimento do CSimpleStringT.

A memória de buffer é automaticamente liberada quando o CSimpleStringT objeto é destruído.

Se você controla o tamanho da seqüência de caracteres por conta própria, você não deve acrescentar o caractere nulo de terminação.Entretanto, você deve especificar o tamanho final da seqüência de caracteres quando você liberar o buffer com ReleaseBuffer. Se você anexar um caractere nulo de terminação, você deve passar – 1 (padrão) para a duração para ReleaseBuffer, e ReleaseBuffer executará um strlen em buffer para determinar seu comprimento.

Se não houver memória suficiente para satisfazer a GetBuffer Solicite que o método lançará uma exceção.

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 CSimpleStringT

CSimpleStringT::GetBufferSetLength

CSimpleStringT::ReleaseBuffer

Outros recursos

CSimpleStringT membros