Compartilhar via


CMemFile::Attach

Chamar essa função para anexar um bloco de memória CMemFile.

void Attach( 
   BYTE* lpBuffer, 
   UINT nBufferSize, 
   UINT nGrowBytes = 0  
);

Parâmetros

  • lpBuffer
    Ponteiro para o buffer seja anexado a CMemFile.

  • nBufferSize
    Um número inteiro que especifica o tamanho do buffer em bytes.

  • nGrowBytes
    O incremento de alocação de memória em bytes.

Comentários

Isso faz com que CMemFile use o bloco de memória como o arquivo de memória.

Se nGrowBytes é 0, CMemFile irá definir o tamanho do arquivo a nBufferSize. Isso significava que os dados no bloco de memória antes que foram anexados a CMemFile será usado como o arquivo. Os arquivos de memória criados assim não podem ser crescidos.

Desde que o arquivo não pode ser crescido, tenha cuidado para não fazer com que CMemFile tente crescer o arquivo. Por exemplo, não chamar as substituições de CMemFile de CFile: gravação para escrever após ao final ou não chamar CFile: SetLength com um tamanho maior que nBufferSize.

Se nGrowBytes é maior que 0, CMemFile irá ignorar o conteúdo do bloco de memória que você tiver anexado. Você precisará escrever a partir do zero o conteúdo do arquivo de memória que usa a substituição de CMemFile de CFile::Write. Se você tentar gravar após o final do arquivo ou crescer o arquivo chamando a substituição de CMemFile de CFile::SetLength, CMemFile crescerá a alocação de memória em incrementos de nGrowBytes. Crescendo a alocação de memória falhará se o bloco de memória que você passa a Anexar não foi atribuído com um método compatível com Alloc. Para ser compatível com a implementação padrão de Alloc, você deve alocar memória com a função da biblioteca malloc ou callocde tempo de execução.

Requisitos

Cabeçalho: afx.h

Consulte também

Referência

Classe CMemFile

Gráfico da hierarquia

CMemFile::CMemFile

CMemFile::Detach

CMemFile::Alloc

CFile::Write

CFile::SetLength