Microsoft Foundation Classes (mfc.hlp) (
Table of Contents;
Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software,
purely for historical purposes.
If you're looking for up-to-date documentation, particularly for programming,
you should not rely on the information found here, as it will be woefully
out of date.
CArchive::CArchive
◄CArchive► ◄Up► ◄Contents► ◄Index► ◄Back►
──Microsoft Foundation Classes──────────────────────────────────────────────
CArchive( CFile* pFile, UINT nMode, int nBufSize = 512,
void FAR* lpBuf = NULL )
throw( CMemoryException, CArchiveException, CFileException );
Parameter Description
<pFile> A pointer to the CFile object that is the ultimate source or
destination of the persistent data.
<nMode> A flag that specifies whether objects will be loaded from or
stored to the archive. The <nMode> parameter must have one
of the following values:
Value Meaning
CArchive::load Load data from the archive. Requires only
CFile read permission.
CArchive::store Save data to the archive. Requires CFile
write permission.
<nBufSize> An integer that specifies the size of the internal file
buffer, in bytes.
NOTE: The default buffer size is 512 bytes. If you routinely
archive large objects, you will improve performance if
you use a larger buffer size that is a multiple of the
file buffer size.
<lpBuf> An optional FAR pointer to a user-supplied buffer of size
<nBufSize>. If you do not specify this parameter, the
archive allocates a buffer from the local heap and frees it
when the object is destroyed. The archive does not free a
user-supplied buffer.
Remarks
Constructs a CArchive object and specifies whether it will be used for
loading or storing objects. You cannot change this specification after
you have created the archive.
You may not use CFile operations to alter the state of the file until
you have closed the archive. Any such operation will damage the
integrity of the archive. You may access the position of the file
pointer at any time during serialization by (1) obtaining the archive's
file object from the GetFile member function and then (2) using the
◄CFile::GetPosition► function. You should call CArchive::Flush before
obtaining the position of the file pointer.
Example
extern char* pFileName;
CFile f;
char buf[512];
if( !f.Open( pFileName, CFile::modeCreate | CFile::modeWrite ) ) {
#ifdef _DEBUG
afxDump << "Unable to open file" << "\n";
exit( 1 );
#endif
}
CArchive ar( &f, CArchive::store, 512, buf );
See Also
◄CArchive::Close►, ◄CArchive::Flush►, ◄CFile::Close►
-♦-