序列化就是儲存物件資料,反序列化就是讀取儲存的物件資料
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中...