CSharedFile 类

支持共享内存文件的 CMemFile派生类。

语法

class CSharedFile : public CMemFile

成员

公共构造函数

“属性” 描述
CSharedFile::CSharedFile 构造 CSharedFile 对象。

公共方法

“属性” 描述
CSharedFile::D etach 关闭共享内存文件并返回其内存块的句柄。
CSharedFile::SetHandle 将共享内存文件附加到内存块。

备注

内存文件的行为类似于磁盘文件。 差别在于,内存文件存储在 RAM 中,而不是存储在磁盘上。 内存文件可用于快速临时存储,或者用于在独立进程之间传输原始字节或序列化的对象。

共享内存文件与其他内存文件的不同之处在于,内存文件是用 GlobalAlloc Windows 函数分配的。 CSharedFile类在使用) 创建 (的全局分配内存块中存储数据 GlobalAlloc ,可以使用 DDE、剪贴板或其他 OLE/COM 统一数据传输操作(例如,使用)共享此内存块 IDataObject

GlobalAlloc 返回一个 HGLOBAL 句柄,而不是指向内存的指针,如 malloc返回的指针。 某些应用程序需要 HGLOBAL 句柄。 例如,若要将数据放在剪贴板上,则需要一个 HGLOBAL 句柄。

CSharedFile 不使用内存映射文件,并且不能在进程之间直接共享数据。

CSharedFile 对象可以自动分配其自己的内存。 或者,可以 CSharedFile 通过调用 CSharedFile:: SetHandle将自己的内存块附加到对象。 在这两种情况下,如果不是零,则会按大小增加自动分配内存文件的内存 nGrowBytes nGrowBytes

有关详细信息,请参阅《运行时库参考 中的文章 文件在 MFC文件处理中。

继承层次结构

CObject

CFile

CMemFile

CSharedFile

要求

标头: afxadv

CSharedFile::CSharedFile

构造一个 CSharedFile 对象并为其分配内存。

CSharedFile(
    UINT nAllocFlags = GMEM_DDESHARE | GMEM_MOVEABLE,
    UINT nGrowBytes = 4096);

parameters

nAllocFlags
指示如何分配内存的标志。 有关有效标志值的列表,请参阅 GlobalAlloc

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

CSharedFile::D etach

调用此函数可关闭内存文件并将其与内存块分离。

HGLOBAL Detach();

返回值

包含内存文件内容的内存块的句柄。

备注

可以通过使用 分离 返回的句柄,通过调用 SetHandle来重新打开它。

CSharedFile::SetHandle

调用此函数可将全局内存块附加到 CSharedFile 对象。

void SetHandle(
    HGLOBAL hGlobalMemory,
    BOOL bAllowGrow = TRUE);

parameters

hGlobalMemory
要附加到的全局内存的句柄 CSharedFile

bAllowGrow
指定是否允许内存块增长。

备注

如果 bAllowGrow 的值为非零值,则会根据需要增加内存块的大小,例如,如果尝试将更多字节写入到文件,而不是内存块的大小。

请参阅

CMemFile 类
层次结构图
CMemFile 类