CSimpleStringT::GetBufferSetLength

Retorna um ponteiro para o buffer interno de caracteres para o objeto de CSimpleStringT , truncando ou crescendo seu comprimento necessário para coincidir com o comprimento especificado em nLength.

PXSTR GetBufferSetLength(
   int nLength
);

Parâmetros

  • nLength
    O tamanho exato do buffer de caracteres de CSimpleStringT em caracteres.

Valor de retorno

Um ponteiro de PXSTR ao buffer de caracteres do objeto (NULL- encerrado.)

Comentários

Chamar esse método para recuperar um comprimento especificado do buffer interno do objeto de CSimpleStringT .O ponteiro retornado de PXSTR não é const e assim não permite modificação direta de conteúdo de CSimpleStringT .

Se você usar o ponteiro retornado por GetBufferSetLength para modificar o conteúdo da cadeia de caracteres, chamada ReleaseBuffer para atualizar o estado interno de CsimpleStringTantes de usar todos os outros métodos de CSimpleStringT .

O endereço retornado por GetBufferSetLength 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 foi reatribuido 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, não acrescentar o caractere de terminação zero.Você deve especificar o tamanho final da cadeia de caracteres quando liberar o buffer usando ReleaseBuffer.Se você acrescenta um caractere nulo de terminação quando você chamar ReleaseBuffer, passe – 1 (o padrão) para o comprimento a ReleaseBuffer, e ReleaseBuffer será executado strlen em buffer para determinar seu comprimento.

Para obter mais informações sobre a contagem de referência, consulte os seguintes artigos:

Exemplo

O exemplo a seguir demonstra o uso de CSimpleStringT::GetBufferSetLength.

CSimpleString str(pMgr);
LPTSTR pstr = str.GetBufferSetLength(3);
pstr[0] = _T('C');
pstr[1] = _T('u');
pstr[2] = _T('p');

// No need for trailing zero or call to ReleaseBuffer()
// because GetBufferSetLength() set it for us.

str += _T(" soccer is best!");
ASSERT(_tcscmp(str, _T("Cup soccer is best!")) == 0);   

Requisitos

Cabeçalho: atlsimpstr.h

Consulte também

Referência

Classe de CSimpleStringT

CSimpleStringT::GetBuffer

CSimpleStringT::ReleaseBuffer