CSharedFile

CSharedFile CSharedFile( CSharedFile::SetHan

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

相關詞條

相關搜尋

熱門詞條

聯絡我們