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
CSimpleStringT::GetBufferSetLength