CMemFile::Attach

调用此功能附加内存块来 CMemFile

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

参数

  • lpBuffer
    对要附加的缓冲区的指针 CMemFile

  • nBufferSize
    在字节指定缓冲区大小的整数。

  • nGrowBytes
    内存分配增量(以字节为单位)。

备注

这会导致 CMemFile 使用内存块作为内存文件。

如果 nGrowBytes 为0,CMemFile 将设置文件长度。nBufferSize。这意味着中的数据存储区,它附加到 CMemFile 将用作文件之前。创建的内存文件不能按照这种方式增大。

因为文件不能增大,小心不会导致 CMemFile 尝试其文件。例如,与 nBufferSize不要调用 CMemFile 重写 C文件: 写入 传递到此端的编写或不调用与长度的 C文件: SetLength 长。

如果 nGrowBytes 大于0,CMemFile 将忽略的内容内存块已附加。使用 CFile::WriteCMemFile 重写将从头开始编写内存文件的内容。如果尝试将通过文件结尾的编写或通过调用 CFile::SetLengthCMemFile 重写其文件,CMemFile 将其内存分配增量 nGrowBytes。存在内存分配将失败,则块您能够 Attach 的未通过随方法与 Alloc兼容。若要与 Alloc的默认实现兼容,必须用运行库函数 malloccalloc的内存。

要求

Header: afx.h

请参见

参考

CMemFile选件类

层次结构图

CMemFile::CMemFile

CMemFile::Detach

CMemFile::Alloc

CFile::Write

CFile::SetLength