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