CArchive::CArchive
Construit un objet d' CArchive et spécifie s'il sera utilisé pour charger et stocker des objets.
CArchive(
CFile* pFile,
UINT nMode,
int nBufSize = 4096,
void* lpBuf = NULL
);
Paramètres
pFile
Pointeur vers l'objet d' CFile qui est la source ou la destination finale de données persistantes.nMode
Un indicateur qui spécifie de si les objets sont chargés ou stockés à l'archivage. Le paramètre d' nMode doit avoir l'une des valeurs suivantes :Données de chargement deCArchive::load de l'archive. Requiert uniquement des autorisations de lecture d' CFile .
CArchive::store enregistre les données à l'archivage. Requiert l'autorisation d'écriture d' CFile .
CArchive::bNoFlushOnDelete empêché l'archive d'appel automatique Flush lorsque le destructeur d'archivage est appelé. Si vous définissez cette balise, vous êtes chargé d'appeler explicitement Fermer avant que le destructeur est appelé. Si vous ne le faites pas, les données sont endommagées.
nBufSize
Un entier qui spécifie la taille de la mémoire tampon de fichier interne, en octets. Notez que la taille de mémoire tampon par défaut est de 4.096 octets. Si vous archivez régulièrement des grands objets, vous améliorerez les performances si vous utilisez une plus grande taille de mémoire tampon qui est un multiple de la taille de la mémoire tampon de fichier.lpBuf
Un pointeur facultatif dans une mémoire tampon fournie par l'utilisateur de taille nBufSize. Si vous ne spécifiez pas ce paramètre, l'archive alloue une mémoire tampon du tas local et la libère lorsque l'objet est détruit. L'archive ne libère pas une mémoire tampon fournie par l'utilisateur.
Notes
Vous ne pouvez pas modifier cette spécification après avoir créé l'archive.
Vous ne pouvez pas utiliser des opérations d' CFile pour modifier l'état du fichier jusqu'à la fermeture de l'archive. Une telle opération endommagera l'état de l'archivage. Vous pouvez accéder à la position du pointeur de fichier à tout moment pendant la sérialisation en obtenant le fichier objet de l'archive de la fonction membre de GetFile puis à l'aide de la fonction de CFile::GetPosition . Vous devez appeler CArchive::Flush avant d'obtenir la position du pointeur de fichier.
Exemple
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);
Configuration requise
Header: afx.h