CSharedFile

CSharedFile是CMemFile派生類,它支持共享的記憶體檔案。記憶體檔案的行為類似於磁碟檔案,但是檔案是保存在RAM中而不是磁碟上。在快速暫存或傳輸未加工位元組時,或在獨立進程之間使對象串列化時,一個記憶體檔案是很有用的。

基本介紹

  • 中文名:CSharedFile
  • 介紹:CMemFile派生類
  • 支持:共享的記憶體檔案
  • 類似於磁碟檔案
簡介,參閱,

簡介

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::Detach

相關詞條

熱門詞條

聯絡我們