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:
Gerenciando o tempo de vida de objeto com contagem de referência em Windows SDK*.*
Implementando a contagem de referência em Windows SDK*.*
Regras para gerenciar as contagens de referência em Windows SDK*.*
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