CArchive::CArchive
CArchive 建構物件並將其用於載入或儲存在物件中。
CArchive(
CFile* pFile,
UINT nMode,
int nBufSize = 4096,
void* lpBuf = NULL
);
參數
pFile
物件是不變的最後一個資料來源或目的端的 CFile 物件的指標。nMode
指定的旗標物件是否會從載入或儲存至檔案。 nMode 參數必須有下列其中一個值:CArchive::load 從檔案載入資料。 要求 CFile 只讀取權限。
CArchive::store 將資料儲存到這個檔案。 CFile 需要寫入權限。
檔案時,便呼叫解構函式時,CArchive::bNoFlushOnDelete 防止這個檔案中自動呼叫 Flush 。 如果您設定這個旗標,您必須明確呼叫 關閉 ,在解構函式呼叫之前。 如果您不使用,則您的資料將會損毀。
nBufSize
指定內部檔案緩衝區大小的整數,以位元組為單位)。 請注意預設緩衝區大小為 4,096 位元組。 如果您經常封存大型物件,您會改善效能,如果您使用的是檔案緩衝區大小的倍數較大的緩衝區大小。lpBuf
out 大小 nBufSize使用者提供的緩衝區的任意指標。 如果沒有指定此參數,這個檔案從區域堆積配置緩衝區並釋放後,在物件終結時。 這個檔案無法釋放使用者提供的緩衝區。
備註
在您建立此檔案之後,您就無法變更這個規格。
您不能使用 CFile 作業修改檔案的狀態,直到您關閉這個檔案。 任何這類作業是破壞此檔案的完整性。 使用 CFile::GetPosition 函式,您可以在序列化期間隨時存取檔案指標的位置以取得檔案) 中物件從 GetFile 成員函式接著。 您應該在衍生檔案指標位置之前呼叫 CArchive::Flush 。
範例
CFile file;
TCHAR szBuf[512];
if( !file.Open(_T("CArchive__test__file.txt"),
CFile::modeCreate | CFile::modeWrite))
{
#ifdef _DEBUG
AFXDUMP(_T("Unable to open file\n"));
exit(1);
#endif
}
CArchive ar(&file, CArchive::store, 512, szBuf);
需求
Header: afx.h