Поделиться через


CMemFile::Attach

Эта функция вызывается, чтобы вложить блок памяти в CMemFile.

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

Параметры

  • lpBuffer
    Указатель на буфер, который требуется вложить в CMemFile.

  • nBufferSize
    Целое число, задающее размер буфера в байтах.

  • nGrowBytes
    Увеличение выделения памяти в байтах.

Заметки

Это приводит к CMemFile использовать блок памяти в виде файла памяти.

Если nGrowBytes 0, то CMemFile устанавливает длину файла в nBufferSize. Это означает, что данные в блоке памяти, прежде чем они были вложены к CMemFile будут использоваться как файл. Созданные файлы памяти, таким образом, не может расти.

Поскольку файл не могут расширяться, соблюдать осторожность, чтобы не вызвать CMemFile попытаться увеличиваться файл. Например, не нужно вызывать CMemFile переопределяет CFile: запись для записи за пределами или не вызовет CFile: SetLength с более длинным, чем длина nBufferSize.

Если nGrowBytes превышает 0, то CMemFile пропускает содержимое блока памяти вложили. Можно записывать содержимое файла памяти с нуля, используя переопределение CMemFileCFile::Write. При попытке записи за пределами файла или увеличиваться файл, вызвав переопределение CMemFileCFile::SetLength, то CMemFile будет увеличиваться выделение памяти на nGrowBytes. Увеличение выделение памяти завершается неудачей, если блок памяти передаче в Присоединиться не был выбор метода с совместимым с Alloc. Чтобы быть совместимо с реализацией по умолчанию Alloc необходимо выделить память с помощью функции библиотеки времени выполнения malloc или calloc.

Требования

Header: afx.h

См. также

Ссылки

Класс CMemFile

Диаграмма иерархии

CMemFile::CMemFile

CMemFile::Detach

CMemFile::Alloc

CFile::Write

CFile::SetLength