CMemFile::Attach
Llame a esta función para asociar un bloque de memoria a CMemFile.
void Attach(
BYTE* lpBuffer,
UINT nBufferSize,
UINT nGrowBytes = 0
);
Parámetros
lpBuffer
Puntero al búfer que se adjuntará a CMemFile.nBufferSize
Un entero que especifica el tamaño del búfer en bytes.nGrowBytes
El incremento de asignación de memoria en bytes.
Comentarios
Esto hace CMemFile para utilizar el bloque de memoria como archivo de memoria.
Si nGrowBytes es 0, CMemFile establecerá la longitud del archivo a nBufferSize. Esto significa que los datos en el bloque de memoria antes de que se adjuntarán a CMemFile se utilizarán como el archivo. Los archivos de memoria creados de esta manera no pueden ser crecidos.
puesto que el archivo no puede ser crecido, tenga cuidado de no hacer CMemFile para intentar crecer el archivo. Por ejemplo, no llame CMemFile reemplazos de Archivo C: Escribir para escribir más allá del final o no llama a Archivo C: SetLength con una longitud mayor que nBufferSize.
Si nGrowBytes es mayor que 0, CMemFile omitirá el contenido del bloque de memoria que ha adjuntado. Deberá escribir el contenido del archivo de memoria desde el principio mediante la invalidación de CMemFile de CFile::Write. Si intenta escribir más allá del final del archivo o crecer el archivo llamando a la invalidación de CMemFile de CFile::SetLength, CMemFile aumentará la asignación de memoria en incrementos de nGrowBytes. Aumentando la asignación de memoria producirá un error si el bloque de memoria que se pasa a Asociar no fue asignado con un compatible de método con Alloc. Para ser compatible con la implementación predeterminada de Alloc, debe asignar memoria a la función de biblioteca en tiempo de ejecución malloc o calloc.
Requisitos
encabezado: afx.h