Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se explica el mecanismo de serialización proporcionado en la Biblioteca de clases de Microsoft Foundation (MFC) para permitir que los objetos persistan entre ejecuciones del programa.
La serialización es el proceso de escritura o lectura de un objeto hacia o desde un medio de almacenamiento persistente, como un archivo de disco. La serialización es ideal para situaciones en las que se desea mantener el estado de los datos estructurados (como clases o estructuras de C++) durante o después de la ejecución de un programa. El uso de los objetos de serialización proporcionados por MFC permite que esto se produzca de forma estándar y coherente, lo que alivia al usuario de la necesidad de realizar operaciones de archivo a mano.
MFC proporciona compatibilidad integrada para la serialización en la clase CObject
. Por lo tanto, todas las clases derivadas de CObject
pueden aprovechar el protocolo de CObject
serialización de .
La idea básica de la serialización es que un objeto debe poder escribir su estado actual, normalmente indicado por el valor de sus variables miembro, en el almacenamiento persistente. Más adelante, el objeto se puede volver a crear leyendo o deserializando el estado del objeto desde el almacenamiento. La serialización controla todos los detalles de punteros de objeto y referencias circulares a objetos que se usan al serializar un objeto. Un punto clave es que el propio objeto es responsable de leer y escribir su propio estado. Por lo tanto, para que una clase sea serializable, debe implementar las operaciones de serialización básicas. Como se muestra en el grupo de serialización de artículos, es fácil agregar esta funcionalidad a una clase.
MFC usa un objeto de la CArchive
clase como intermediario entre el objeto que se va a serializar y el medio de almacenamiento. Este objeto siempre está asociado a un CFile
objeto, desde el que obtiene la información necesaria para la serialización, incluido el nombre de archivo y si la operación solicitada es de lectura o escritura. El objeto que realiza una operación de serialización puede usar el CArchive
objeto sin tener en cuenta la naturaleza del medio de almacenamiento.
Un CArchive
objeto usa operadores de inserción sobrecargada (<<) y extracción (>>) para realizar operaciones de escritura y lectura. Para obtener más información, vea Almacenar y cargar CObjects a través de un archivo en el artículo Serialización: Serialización de un objeto.
Nota:
No confunda la CArchive
clase con clases iostream de uso general, que son solo para texto con formato. La CArchive
clase es para objetos serializados de formato binario.
Si lo desea, puede omitir la serialización de MFC para crear su propio mecanismo para el almacenamiento de datos persistente. Tendrá que invalidar las funciones miembro de clase que inician la serialización en el comando del usuario. Consulte la explicación de la nota técnica 22 de los comandos ID_FILE_OPEN, ID_FILE_SAVE y ID_FILE_SAVE_AS estándar.
En los siguientes artículos se tratan las dos tareas principales necesarias para la serialización:
En el artículo Serialización: Serialización frente a entrada y salida de base de datos se describe cuando la serialización es una técnica de entrada y salida adecuada en las aplicaciones de base de datos.
Consulte también
Conceptos
Temas generales de MFC
CArchive (clase)
CObject (clase)
CDocument (clase)
CFile (clase)