複製鏈接
請複製以下鏈接發送給好友

CMemFile

鎖定
CMemFile,為支持內存文件的CFile的派生類。內存文件的行為類似於磁盤文件,所不同的是該文件存儲在RAM中,而不是磁盤上。內存文件用於快速暫時存儲,以及在獨立的進程間轉換字節或可串行化的對象。
外文名
CMemFile
CMemFile
構造一個內存文件對象
Attach
附加內存塊到CMemFile中
Alloc
可覆蓋以用於修改內存分配行為

CMemFile函數功能

CMemFile對象能夠自動地分配它們的內存空間,或通過調用Attach函數為CMemFile對象附加內存塊。另一種情形,如果nGrowBytes非零,那麼將自動地以nGrowBytes為單位為增加的內存文件分配內存。
可以通過提供的指針訪問內存塊,此時可以通過調用Detach函數將其從CMemFile對象中分離出來。
CMemFile函數最一般的用途是創建CMemFile對象,並通過調用CFile成員函數來使用它。值得注意的是當創建CMemFile後將自動得打開它:不要調用僅僅用於磁盤文件的CFile::Open函數,其原因在於沒有使用數據成員CFile::m_hFile。
CFile成員函數Duplicate, LockRange和UnlockRange對於CMemFile無效。如果在CMemFile對象中調用了這些函數,那麼將獲得CnotSupported Exception。
CMemFile使用了運行庫函數malloc, realloc,和free來分配、重新分配和釋放內存,而原有的memcpy函數在進行讀寫時,可以塊拷貝。如果希望改變這種行為或CMemFile增大文件的行為,那麼應當從CMemFile中派生自己的類,並輔以適當的函數。
#include <afx.h>
CMemFile類的成員

CMemFile構造函數

操作
從CMemFile中分離內存塊,並返回被分離的內存塊的指針
高級可覆蓋的函數
可覆蓋以用於修改釋放內存行為
可覆蓋以用於修改重新分配內存行為
可覆蓋以用於讀寫時修改內存拷貝行為
GrowFile
可覆蓋以用於修改文件增大時的行為