基本介紹
簡介,參閱,
簡介
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