MFC/C++学习系列之简单记录——序列化机制

MFC/C++学习系列之简单记录------序列化机制

  • 前言
  • 简述六大机制
  • 序列化机制
  • 使用
  • 反序列化
  • 总结

前言

MFC有六大机制,分别是程序启动机制、窗口创建机制、动态创建机制、运行时类信息机制、消息映射机制、序列化机制。


简述六大机制

程序启动机制:全局的应用程序类对象------>AfxWinMain主函数------>应用程序对象的指针------>调用程序对象的有关函数------>初始化和启动

窗口创建机制:加载菜单------>CWnd::CreateEx函数创建窗口------>PreCreateWindow函数设计和注册窗口类------>AfxHookWindowCreate函数------>创建WH_CBT类型的钩子(将框架类对象保存到全局变量当前程序线程信息)------>CreateWindowEx函数创建窗口------>消息处理函数为AfxWndProc(框架类对象与窗口句柄进行绑定)

动态创建机制:派生自CObject------>声明DECLARE_DYNAMIC(theclass)------>实现宏IMPLEMENT_DYNAMIC(theclass,baseClass)。

动态创建机制允许在运行时根据类信息的结构动态地创建对象

运行时类信息机制:运行时类信息机制(RTTI)允许在运行时获取类的信息,如类名、大小、版本等。

添加声明DECLARE_DYNAMIC(theclass)或DECLARE_DYNCREATE(theclass),类外必须添加实现宏IMPLEMENT_DYNAMIC(theclass,baseClass)或IMPLEMENT_DYNCREATE(theclass,baseClass)。通过CRuntimeClass* CObject::GetRuntimeClass() const获取静态变量的地址,使用IsKindOf()函数来查找是否是括号中类的派生类。

消息映射机制:MFC程序中的消息映射机制允许将Windows消息、控制通知消息和命令消息映射到对应的处理函数,可以理解为窗口控件和后台事件绑定。消息映射表------>查询该表判断是否需要响应某条消息。

序列化机制:序列化操作将类对象的数据部分按照一定的规则进行二进制摆放,

序列化机制

以二进制流形式读写硬盘文件。序列化去硬盘写数据,反序列化去硬盘读数据。

CFile类:文件操作类

CArchive类:归档类,有关于内存数据的读写操作。

使用

cpp 复制代码
CFile file;
file.Open("xxx",CFile::modeCreate|CFile::modeWrite);

CArchive ar(&file,CArchive::store,4096);
float arr=86.5;
ar<<arr;//插入缓冲区
ar.Close();
file.Close();

这里就是将数据写入xxx文件内。也就是arr的86.5写入file这里的文件内。

反序列化

使用区别主要在设置中

cpp 复制代码
CArchive ar(&file,CArchive::load,4096);

将store改成load,也就是加载。


总结

简单介绍了序列化代码的使用,将数据以序列化的形式写入文件!

相关推荐
R-G-B2 天前
【10】MFC入门到精通——MFC 创建向导对话框、属性页类、属性表类、代码
c++·mfc·创建向导对话框·创建属性页类·创建属性表类
今天又在学代码写BUG口牙2 天前
MFC应用程序,工作线程学习记录
c++·mfc·1024程序员节
滴_咕噜咕噜4 天前
【MFC】sqlite3数据库类导入MFC项目调用
sqlite·mfc
R-G-B4 天前
【23】MFC入门到精通——MFC资源视图 报错“在另一个编辑器中打开” ,MFC Dialog窗口消失 资源视图“在另一个编译器中打开”
c++·编辑器·mfc·“在另一个编辑器中打开”·mfc dialog窗口消失
滴_咕噜咕噜5 天前
【MFC】数据库操作:数据库动态生成
数据库·c++·mfc
R-G-B5 天前
【25】MFC入门到精通——MFC静态文本框 中字符串 连续输出 不覆盖先前的文本 换行输出
c++·mfc·mfc静态文本框输出字符串·mfc静态文本框连续输出字符串·mfc静态文本框换行输出字符串
ajassi20006 天前
开源 C++ QT QML 开发(二十三)程序发布
c++·qt·mfc
R-G-B6 天前
【21】MFC入门到精通——MFC 调试及运行状态下,使用printf() 或者 cout 打印输出信息
c++·mfc·mfc调试及运行状态下打印输出·mfc 打印输出printf·mfc打印输出cout 信息
SunkingYang9 天前
详细介绍C++中捕获异常类型的方式有哪些,分别用于哪些情形,哪些异常捕获可用于通过OLE操作excel异常
c++·excel·mfc·异常捕获·comerror
R-G-B9 天前
【35】MFC入门到精通——MFC运行 不显示对话框 MFC界面不显示
c++·mfc·mfc运行 不显界面·mfc界面不显示