CArchive ( CFile * pFile, UINT nMode, int nBufSize = 4096 โมฆะ * lpBuf = NULL );
โยน ( CMemoryException, CArchiveException, CFileException );
พารามิเตอร์
pFile
ตัวชี้ไปยังวัตถุCFileที่คือ ultimate ต้นทางหรือปลายทางของข้อมูลแบบถาวร?
nMode
ค่าสถานะที่ระบุว่า วัตถุจะถูกโหลดจาก หรือเก็บไว้ในที่เก็บถาวร พารามิเตอร์nModeต้องมีหนึ่งในค่าต่อไปนี้:
nBufSize
ค่า integer ที่ระบุขนาดของแฟ้มภายในบัฟเฟอร์ ไบต์ หมายเหตุว่า ขนาดของบัฟเฟอร์เริ่มต้นเป็น 4096 ไบต์ ถ้าคุณเก็บวัตถุขนาดใหญ่เป็นประจำ คุณจะปรับปรุงประสิทธิภาพการทำงานถ้าคุณใช้บัฟเฟอร์ขนาดใหญ่ที่มีตัวคูณของบัฟเฟอร์ขนาดแฟ้ม?
lpBuf
ชี้ทางเลือกเพื่อให้ผู้ใช้บัฟเฟอร์ของขนาดnBufSize ถ้าคุณไม่ระบุพารามิเตอร์นี้ การเก็บถาวรจัดสรรบัฟเฟอร์จากกองภายในเครื่อง และทำให้เมื่อวัตถุถูกทำลาย เก็บถาวรไม่ฟรีบัฟเฟอร์ผู้ใช้มา?
หมายเหตุ
โครงสร้างวัตถุแบบCArchiveและระบุว่า มันจะถูกใช้สำหรับการโหลด หรือเก็บวัตถุ คุณไม่สามารถเปลี่ยนข้อมูลจำเพาะนี้หลังจากที่คุณได้สร้างเก็บถาวร?
นอกจากนี้คุณไม่อาจใช้CFileการดำเนินการปรับเปลี่ยนสถานะของแฟ้มนั้นจนกว่าคุณได้ปิดการเก็บถาวร การดำเนินการเช่นจะทำให้เสียความถูกต้องของเก็บถาวร คุณสามารถเข้าถึงตำแหน่งของตัวชี้แฟ้มได้ตลอดเวลาในระหว่างการอนุกรม ด้วยการรับของเก็บถาวรแฟ้มวัตถุจากฟังก์ชันสมาชิกGetFileแล้ว ใช้ฟังก์ชันCFile::GetPosition คุณควรเรียกใช้CArchive::Flushก่อนที่จะรับตำแหน่งของตัวชี้แฟ้ม?
ตัวอย่าง
extern char * pFileName
CFile f
ระยะเวลาบัฟเฟอร์ของ char [512];
ถ้า (! f.Open (pFileName, CFile::modeCreate | CFile::modeWrite)) {
nbsp #ifdef _DEBUG
afxDump << "ไม่สามารถเปิดแฟ้ม" << "\n"
ออกจาก (1);
#endif
}
CArchive ar (& f, CArchive::store, 512 ระยะเวลาบัฟเฟอร์ของ);
ภาพรวม CArchive |nbsp สมาชิกของคลาส| แผนภูมิของลำดับชั้น(&N)
ดูเพิ่มเติมnbspCArchive::Close, CArchive::Flush, CFile::Close(&N)