CArchive::CArchive
Yapıları bir CArchive object ve yeniden yüklenmesi veya nesneleri depolamak için kullanılıp kullanılmayacağını belirtir.
CArchive(
CFile* pFile,
UINT nMode,
int nBufSize = 4096,
void* lpBuf = NULL
);
Parametreler
pFile
Bir işaretçi CFile ultimate kaynak ya da hedef kalıcı veri nesnesi.nMode
Nesneleri aşağıdaki konumdan yüklendi ve yüklenecek arşiv depolanan olup olmadığını belirten bir bayrak. nMode Parametre aşağıdaki değerlerden biri olmalıdır:CArchive::load arşivden veri yükler. Yalnızca gerektirir CFile okuma izni.
CArchive::store arşiv verileri kaydeder. Gerektiren CFile yazma izni.
CArchive::bNoFlushOnDelete otomatik olarak arama arşiv engeller Flush ne zaman arşiv yıkıcı olarak adlandırılır. Bu bayrağı ayarlarsanız, açıkça çağırmak için sorumlu olan Kapat yıkıcı çağrılmadan önce. Aksi takdirde, verileri bozuk.
nBufSize
Bayt cinsinden iç dosya arabelleği boyutunu belirten bir tamsayı. Varsayılan arabellek boyutu 4.096 bayt olduğunu unutmayın. Düzenli olarak büyük nesneler arşivlerseniz, dosya arabelleği boyutunun katı olduğundan daha büyük bir arabellek boyutu kullanırsanız, performansı iyileştirir.lpBuf
Kullanıcı tarafından sağlanan arabellek boyutunu için isteğe bağlı bir işaretçi nBufSize. Bu parametreyi belirtmezseniz, arşiv yerel yığın alanından bir arabellek ayırır ve nesne yok edildiğinde serbest bırakır. Arşiv, kullanıcı tarafından sağlanan arabellek boş değil.
Notlar
Arşiv oluşturduktan sonra bu belirtimi değiştiremezler.
Değil kullanabilir CFile arşiv kapatılıncaya kadar dosyanın durumunu değiştirmek için işlemleri. Bu tür bir işlem arşivi bütünlüğüne zarar. Arşiv 's dosya nesnesinden elde ederek seri hale getirme sırasında istediğiniz zaman dosya işaretçisi konumunu erişebilir GetFile üye işlev ve sonra kullanarak CFile::GetPosition işlevi. Çağırması gerekir CArchive::Flush önce dosya işaretçisi konumunu elde etme.
Örnek
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);
Gereksinimler
Başlık: afx.h