Sérialisation dans MFC
Cet article décrit le mécanisme de sérialisation fourni dans la bibliothèque MFC (microsoft foundation class) pour permettre aux objets pour rendre persistantes entre les exécutions de votre programme.
La sérialisation est le processus de l'écriture ou de lecture un objet dans ou à partir d'un support de stockage persistant tel qu'un fichier sur disque.La sérialisation est idéale pour les situations où on désire pour conserver l'état des données structurées (telles que les classes ou les structures C++) pendant ou après l'exécution d'un programme.Utilisation d'objets de sérialisation fournis par les MFC permet à cela à générer de manière standard et cohérente, accélération l'utilisateur de la nécessité d'effectuer des opérations sur les fichiers manuellement.
MFC fournit la prise en charge intégrée de la sérialisation dans la classe CObject.Par conséquent, toutes les classes dérivées d' CObject peuvent tirer parti du fournisseur de la sérialisation de CObject.
L'idée de base de la sérialisation est qu'un objet doit pouvoir écrire son état actuel, généralement indiqué par la valeur de ses variables membres, au stockage persistant.Ultérieurement, l'objet peut être recréé lors de la lecture, ou la désérialisation, l'état de l'objet de stockage.La sérialisation gère tous les détails des pointeurs d'objet et les références circulaires aux objets qui sont utilisés lorsque vous sérialisiez un objet.Un essentiel est que l'objet lui-même est chargé de lire et d'écrire leur état.Ainsi, pour une classe soit sérialisable, il doit implémenter les opérations de base de sérialisation.Comme indiqué dans le groupe de sérialisation d'articles, il est facile d'ajouter cette fonctionnalité à une classe.
MFC utilise un objet de la classe d' CArchive comme intermédiaire entre l'objet à sérialiser et le support de stockage.Cet objet est toujours associé à un objet d' CFile , dans lequel il obtient les informations nécessaires pour la sérialisation, notamment le nom de fichier et si l'opération demandée est une lecture ou l'écriture.L'objet qui exécute une opération de sérialisation peut utiliser l'objet d' CArchive sans tenir compte de la nature du support de stockage.
Un objet d' CArchive utilise les opérateurs surchargés d'insertion (<<) et d'extraction (>>) pour exécuter des opérations d'écriture et de lecture.Pour plus d'informations, consultez L'enregistrement et le chargement CObjects via une archive dans la sérialisation de l'article suivant : sérialiser un objet.
[!REMARQUE]
Ne confondez pas la classe d' CArchive avec les classes iostream à usage général, qui concernent le texte mis en forme uniquement.La classe d' CArchive concerne les objets sérialisés par format binaire.
Si vous le souhaitez, vous pouvez ignorer la sérialisation de MFC pour créer votre propre mécanisme pour le stockage des données persistant.Vous devez substituer le membre de classe fonctionne cette sérialisation initier à la commande de l'utilisateur.Consultez la description dans note technique 22 des commandes d' ID_FILE_OPEN, standard d' ID_FILE_SAVE, et d' ID_FILE_SAVE_AS .
Les éléments suivants présentent les deux tâches principales requises pour la sérialisation :
L'article sérialisation : Sérialisation et l'entrée/sortie de base de données décrit lorsque la sérialisation est une technique appropriée d'entrée/sortie dans les applications de base de données.