词条 | CSharedFile |
释义 | CSharedFile CObject └CFile └CMemFile └CSharedFile CSharedFile是CMemFile派生类,它支持共享的内存文件。内存文件的行为类似于磁盘文件,但是文件是保存在RAM中而不是磁盘上。在快速暂存或传输未加工字节时,或在独立进程之间使对象串行化时,一个内存文件是很有用的。 共享内存文件与其它的内存文件不同,共享内存文件的内存是由GlobalAllocWindows函数分配的。CSharedFile类将数据保存在一个全局分配的内存块(用GlobalAlloc创建)中,并且这个内存块可以使用DDE,剪贴板,或其它OLE/COM统一数据传输操作(例如,使用IDataObject)来共享。 GlobalAlloc 返回一个HGLOBAL 句柄,而不是像malloc那样返回一个内存指针。在某些应用程序中需要HGLOBAL句柄。例如,要将数据放入剪贴板中,你就需要一个HGLOBAL句柄。 请注意,CSharedFile不使用内存映射文件,并且数据不能在进程之间共享。CSharedFile对象可以自动分配它们自己的内存,或是你可以通过调用CSharedFile:: SetHandle来将你自己的内存块连接到CSharedFile对象上。不管是哪一种情况,如果nGrowBytes不为零,则用于增长内存文件的内存被自动按nGrowBytes-sized增量分配。 更多的信息,参见“Microsoft Visual C++ 6.0参考库”中的“Microsoft Visual C++6.0运行库参考手册”卷中的“文件处理”。 #include <afxadv.h> 请参阅:CMemFile, GlobalAlloc, GlobalFree, GlobalRealloc CSharedFile类成员 构造 CSharedFile 构造一个CSharedFile对象 操作 Detach 关闭共享内存文件并返回它的内存块的句柄 SetHandle 将共享内存文件与一个内存块连接 CSharedFile::CSharedFile CSharedFile( UINT nAllocFlags = GMEM_DDESHARE | GMEM_MOVEABLE, UINT nGrowBytes = 4096 ); 参数 nAllocFlags 表示内存是如何分配的标志。参见GlobalAlloc可以获得一个有效标志值的列表。 nGrowBytes 用字节表示的内存分配增量。 说明: 此成员函数用来构造一个CSharedFile对象并为它分配内存。 请参阅:CSharedFile::Detach, CSharedFile::SetHandle CSharedFile::Detach HGLOBAL Detach( ); 返回值:返回包含此内存文件内容的内存块的句柄。 说明: 此成员函数用来关闭内存文件并使它与内存块分离。你可以通过使用Detach返回的句柄来调用SetHandle来重新打开它。 请参阅:CSharedFile::CSharedFile, CSharedFile::SetHandle CSharedFile::SetHandle void SetHandle( HGLOBAL hGlobalMemory, BOOL bAllowGrow = TRUE ); 参数: hGlobalMemory 与CSharedFile连接的全局内存的句柄。 bAllowGrow 指示内存块是否被允许增长。 说明: 此成员函数用来将一个全局内存块连接到CSharedFile对象上。如果bAllowGrow是非零值,则内存块按需要增长,例如,如果要写入此内存文件的字节数大于分配的内存块,则可以增长内存块。 请参阅:CSharedFile::CSharedFile, CSharedFile::Detach |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。