分享方式:


CSharedFile 類別

支援共用記憶體檔案的 CMemFile 衍生類別。

語法

class CSharedFile : public CMemFile

成員

公用建構函式

名稱 描述
CSharedFile::CSharedFile 建構 CSharedFile 物件。

公用方法

名稱 描述
CSharedFile::D etach 關閉共用記憶體檔案,並傳回其記憶體區塊的句柄。
CSharedFile::SetHandle 將共用記憶體檔案附加至記憶體區塊。

備註

記憶體檔案的行為就像磁碟檔案。 差別在於,記憶體檔案會儲存在 RAM 中,而不是儲存在磁碟上。 記憶體檔案適用於快速暫存記憶體,或用於在獨立進程之間傳輸原始位元組或串行化物件。

共用記憶體檔案與其他記憶體檔案不同,因為該記憶體的記憶體會使用 GlobalAlloc Windows 函式來配置。 類別 CSharedFile 會將資料儲存在全域配置的記憶體區塊中(使用 GlobalAlloc建立),而此記憶體區塊可以使用 DDE、剪貼簿或其他 OLE/COM 統一數據傳輸作業來共用,例如使用 IDataObject

GlobalAlloc會傳回 HGLOBAL 句柄,而不是記憶體指標,例如 malloc 所傳回的指標。 某些應用程式中需要 HGLOBAL 句柄。 例如,若要將數據放在剪貼簿上,您需要 HGLOBAL 句柄。

CSharedFile 不會使用記憶體對應檔案,而且無法在進程之間直接共享數據。

CSharedFile 物件可以自動配置自己的記憶體。 或者,您可以呼叫 CSharedFile::SetHandle,將自己的記憶體區塊附加至 CSharedFile 物件。 不論是哪一種情況,如果nGrowBytes不是零,會自動配置nGrowBytes記憶體檔案的記憶體大小遞增。

如需詳細資訊,請參閱運行時間連結庫參考中的 MFC 中的檔案和檔案處理一文。

繼承階層架構

CObject

CFile

CMemFile

CSharedFile

需求

標頭: afxadv.h

CSharedFile::CSharedFile

CSharedFile建構 物件併為其配置記憶體。

CSharedFile(
    UINT nAllocFlags = GMEM_DDESHARE | GMEM_MOVEABLE,
    UINT nGrowBytes = 4096);

參數

nAllocFlags
指出記憶體配置方式的旗標。 如需有效旗標值的清單,請參閱 GlobalAlloc

nGrowBytes
記憶體配置以位元組為單位遞增。

CSharedFile::D etach

呼叫此函式以關閉記憶體檔案,並將它與記憶體區塊中斷連結。

HGLOBAL Detach();

傳回值

包含記憶體檔案內容的記憶體區塊句柄。

備註

您可以使用 Detach傳回的句柄呼叫 SetHandle 來重新開啟它。

CSharedFile::SetHandle

呼叫此函式,將全域記憶體區塊附加至 CSharedFile 物件。

void SetHandle(
    HGLOBAL hGlobalMemory,
    BOOL bAllowGrow = TRUE);

參數

hGlobalMemory
要附加至 之全域記憶體的 CSharedFile句柄。

bAllowGrow
指定是否允許記憶體區塊成長。

備註

如果 bAllowGrow 為非零,則記憶體區塊的大小會視需要增加,例如,如果您嘗試將更多的位元組寫入檔案,而不是記憶體區塊的大小。

另請參閱

CMemFile 類別
階層架構圖表
CMemFile 類別