共用方式為


CMemFile::Attach

呼叫此函式將記憶體區塊加入至 CMemFile

void Attach(
   BYTE* lpBuffer,
   UINT nBufferSize,
   UINT nGrowBytes = 0 
);

參數

  • lpBuffer
    要附加之緩衝區的指標。 CMemFile

  • nBufferSize
    以位元組指定緩衝區大小的整數。

  • nGrowBytes
    記憶體配置加入以位元組為單位)。

備註

這會導致 CMemFile 使用記憶體區塊是記憶體中的檔案。

如果 nGrowBytes 為 0, CMemFile 會設定檔案長度為 nBufferSize。 這表示在存放區中的資料,在附加至 CMemFile 前使用為檔案。 在記憶體中建立的檔案不能以這種方式擴充。

因為檔案無法放大,請小心不要讓 CMemFile 嘗試成長檔案。 例如,比 nBufferSize不要呼叫 CMemFile 覆寫 C 檔案: 寫入 撰寫的結尾處或無法縮放與長度的 C 檔案: SetLength 長度。

如果 nGrowBytes 大於 0, CMemFile 會忽略您附加記憶體區塊的內容。 使用 CFile::WriteCMemFile 覆寫您必須從頭開始撰寫記憶體檔案的內容。 如果您嘗試將超過檔案結尾或呼叫 CFile::SetLengthCMemFile 覆寫成長檔案, CMemFile 會成長記憶體配置增加 nGrowBytes。 成長記憶體配置失敗,如果您傳遞至 連結 的記憶體區塊不是使用方法配置的 Alloc相容。 要與 Alloc的預設實作不相容,您必須以配置的執行階段程式庫函式 malloccalloc的記憶體。

需求

Header: afx.h

請參閱

參考

CMemFile 類別

階層架構圖

CMemFile::CMemFile

CMemFile::Detach

CMemFile::Alloc

CFile::Write

CFile::SetLength