MFC的序列序列化的實現

2021-06-12 08:09:13 字數 1242 閱讀 6359

序列化就是儲存物件資料,反序列化就是讀取儲存的物件資料

mfc的序列序列化的實現幾個必要條件

1.類物件必須要直接或間接繼承cobject物件

2.類中要有預設的建構函式

3.類中要有declare_serial( 類名)的宣告,類實現的外部要有implement_serial( 類名, 直接繼承的類, 1)

4.類要繼承cobject的虛函式實現virtual void serialize( carchive &ar);

5.序列化實現時,類物件儲存必須要是指標形式

舉例如下:

class cperson :public cobject

virtual void serialize( carchive &ar);

int nvalue;

cstring str;

};implement_serial( cperson, cobject, 1)

cperson::cperson()

cperson::cperson( int n, cstring &strr)

void cperson::serialize(carchive &ar )

}主程式儲存:

cfile cf;

cf.open( "c:\\a.txt", cfile::modecreate|cfile::modewrite );

cstring str("123456");

cperson cpp(2, str );

cperson *cp=&cpp;

carchive car( &cf, carchive::store );

int a=3;

cstring ss("789多發點");

cb *ccb = new cb( 3, ss);

car主程式讀取:

cfile cf;

cf.open( "c:\\a.txt", cfile::moderead );

cperson *cp = null;

carchive car( &cf, carchive::load );

int a= 0;

cb *ccb= null;

car>>cp>>a;//此處讀取時必須先是cpp然後是a,必須與儲存的順序對應,否則會出錯的

int i = 0;

i= cp->nvalue;

cstring str;

str = cp->str;

cf.close();

MFC序列化和反序列化

class a void fileserialize cstring filename carchive ar file,carchive store int num ar num ar.close file.close void filedeserialize cstring filename,a...

MFC文件的序列化

1 建立乙個可序列化類,可序列化類都是從cobject繼承而來 2 過載serialize成員函式 3 在類宣告中使用declare serial巨集 4 定義乙個沒有引數的建構函式 5 在實現檔案中使用implement serial巨集 二 carchive類 carchive類用來建立乙個持久...

MFC序列化及反序列化變數

你說什麼最難受,是相愛的人見不了面,還是最愛的人在別人身邊。網易雲熱評 一 作用 以二進位製流 資料流 形式,讀寫硬碟檔案,效率高,速度快 二 使用方法 1 寫 序列化 資料 定義ar物件,ar將維護一塊buff。依次序列化每乙個資料到ar維護的buff中。如果buff空間不足,將ar維護buff中...