请输入您要查询的百科知识:

 

词条 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条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/2/27 5:45:08