複製鏈接
請複製以下鏈接發送給好友

CSharedFile

鎖定
CSharedFile是CMemFile派生類,它支持共享的內存文件。內存文件的行為類似於磁盤文件,但是文件是保存在RAM中而不是磁盤上。在快速暫存或傳輸未加工字節時,或在獨立進程之間使對象串行化時,一個內存文件是很有用的。
中文名
CSharedFile
介    紹
CMemFile派生類
支    持
共享的內存文件
類似於
磁盤文件

目錄

CSharedFile簡介

CSharedFile
└CSharedFile
共享內存文件與其它的內存文件不同,共享內存文件的內存是由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>
CSharedFile類成員
構造
構造一個CSharedFile對象
操作
關閉共享內存文件並返回它的內存塊的句柄
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::SetHandle
void SetHandle( HGLOBAL hGlobalMemory, BOOL bAllowGrow = TRUE );
參數:
hGlobalMemory
與CSharedFile連接的全局內存的句柄。
bAllowGrow
指示內存塊是否被允許增長。
説明:
此成員函數用來將一個全局內存塊連接到CSharedFile對象上。如果bAllowGrow是非零值,則內存塊按需要增長,例如,如果要寫入此內存文件的字節數大於分配的內存塊,則可以增長內存塊。

CSharedFile參閲

CSharedFile::CSharedFile, CSharedFile::Detach