CSimpleStringT::LockBuffer
Desativa a contagem de referência e protege a seqüência de caracteres no buffer.
PXSTR LockBuffer( );
Valor de retorno
Um ponteiro para um CSimpleStringT o objeto ou uma seqüência de caracteres terminada com caractere nulo.
Comentários
telefonar Esse método para bloquear o buffer do CSimpleStringT objeto. Chamando LockBuffer, você cria uma cópia da seqüência de caracteres, com um – 1 para a contagem de referência. Quando o valor de contagem de referência é -1, a seqüência de caracteres no buffer é considerada em um estado "bloqueado".Embora em um estado bloqueado, a seqüência de caracteres é protegida de duas maneiras:
Nenhuma Outros seqüência de caracteres pode obter uma referência aos dados na seqüência de caracteres de bloqueado, mesmo se essa cadeia de caracteres é atribuída a seqüência de caracteres bloqueada.
A seqüência de caracteres bloqueada nunca fará referência a Outros seqüência, mesmo se Outros seqüência de caracteres que é copiada para a seqüência de caracteres bloqueada.
Bloqueando a seqüência de caracteres no buffer, você garante suspensão exclusivo da cadeia de caracteres no buffer permanecerão intacta.
Depois que você tiver terminado com LockBuffer, telefonar UnlockBuffer para reiniciar a contagem de referência para 1.
Observação: |
---|
Se você chamar GetBuffer em um buffer bloqueado e você conjunto o GetBuffer parâmetro nMinBufferLength Para maior que o comprimento do buffer corrente, você perderá o bloquear de buffer. Como uma telefonar para GetBuffer destrói o buffer corrente, substitui por um buffer de dimensionar solicitado e redefine a contagem de referência para zero. |
Para obter mais informações sobre contagem de referência, consulte os seguintes artigos:
Gerenciar tempos de vida do objeto através de contagem de referência in the Windows SDK
Implementação de contagem de referência in the Windows SDK
Regras para gerenciar contagens de referência in the Windows SDK
Exemplo
O exemplo a seguir demonstra o uso de CSimpleStringT::LockBuffer.
CSimpleString str(_T("Hello"), pMgr);
TCHAR ch;
str.LockBuffer();
ch = str.GetAt(2);
_tprintf_s(_T("%c"), ch);
str.UnlockBuffer();
Requisitos
Cabeçalho: atlsimpstr.h