日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MFC序列化(serial)简单例子

發布時間:2023/12/10 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MFC序列化(serial)简单例子 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們保存一些文本內容可以很簡單的保存成一個文件就行了.但如果要把一些類對象信息保存起來,然后讀取時用那些信息初始化一個類對象就比較復雜了.MFC提供了一個叫序列化的功能.可以把一個對象信息轉化成二進制文件(或者xml文件)保存起來.

下面舉一個簡單的例子,假如有類CArwen,實例化一個對象,然后序列化該對象.最后反序列化,把保存的值再讀出來初始化給一個對象.

?

1.先定義類CArwen

//頭文件

class CArwen: public CObject

{

DECLARE_SERIAL(CArwen)

public:

virtual void Serialize(CArchive& ar);

int age;

CString name;

};

//cpp文件

IMPLEMENT_SERIAL(CArwen,CObject,1) //1是版本號,可以隨便指定一個數值

?

void CArwen::Serialize(CArchive& ar)

{

if(ar.IsStoring()){ //序列化,保存信息.CArchive::store與此對應

ar<<age;

ar<<name;

}else //反序列化,讀取信息

{

ar>>age;

ar>>name;

}

}

?

2.測試程序

#include "CArwen.h"

CString filePath = _T("D:\\app\\Arwen.dat")?;? //序列化把對象信息保存在該文件中

void TestSerializeArwen() //保存信息

{

????? CArwen arwen;

????? arwen.age = 24;

????? arwen.name = _T("weiwenhp);? //如果沒用unicode,就不用_T

????? CFile fi;

????? fi.Open(filePath , CFile::modeCreate|CFile::modeWrite); //如果文件不存在則創建一個,否則只是往文件寫數據

????? CArchive ar(&fi, CArchive::store);

??????awen.Serialize(ar);?? //序列化對象

????? ar.Close();

????? fi.Close();

}

?

void TestReadSerilizedArwn() //讀取信息

{

CArwen arwen;

CFile fi;

fi.Open(filePath , CFile::Read);

CArchive ar(&fi, CArchive::load);

awen.Serialize(ar); //反序列化對象

ar.Close();

fi.Close();

?

}

總結

以上是生活随笔為你收集整理的MFC序列化(serial)简单例子的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。