MFC的CArchive類

CArchive沒有基類

  CArchive允許以一個永久二進制(通常爲磁盤存儲)的形式保存一個對象的複雜網絡,它可以在對象被刪除時,還能永久保存。可以從永久存儲中裝載對象,在內存中重新構造它們。使得數據永久保留的過程就叫作“串行化”。

  可以把一個歸檔對象看作一種二進制流。象輸入/輸出流一樣,歸檔與文件有關並允許寫緩衝區以及從硬盤讀出或讀入數據。輸入/輸出流處理一系列ASCII字符,但是歸檔文件以一種有效率、精練的格式處理二進制對象。

  必須在創建一個CArchive對象之前,創建一個CFile對象。另外,必須確信歸檔文件的裝入/存儲與文件的打開模式是兼容的。每一個文件只限於一個活動歸檔文件。

  當構造一個CArchive對象時,要把它附加給表示一個打開文件的類CFile(或派生類)的對象上。還要指定歸檔文件將用於裝載還是存儲。CArchive對象不僅可以處理首要類型,而且還能處理爲串行化而設計的CObject_派生類的對象。一個串行化類通常有一個Serialize成員函數並且使用DECLARE_SERIAL和IMPLEMENT_SERIAL宏。這些在CObject類中有所描述。

  重載提取(>>)和插入(<<)是方便的歸檔編程接口。它支持主要類型和CObject派生類。

  CArchive還支持使用MFC Windows套接字類CSocket和CSocketFile編程。IsBufferEmpty成員函數也支持這種使用。如果要了解有關CArchive的更多信息,請參閱聯機文檔“Visual C++ 程序員指南”中的“串行化(永久對象)” 和“Windows套接字:在歸檔文件中使用套接字”

 

      上面是MSDN中的一段介紹。

      下面舉個例子理解下:

建立個單文檔的MFC工程,這樣方便點。

下面是我自己的一個數據類

 

 

在MFC框架的Doc類中找到Serialize(CArchive& ar)函數

 

運行程序

當點擊菜單的保存按鈕後  就會將上面的信息保存進所選則的文件中

當點擊菜單的打開按鈕後 在裏面大斷點就可以看到數據已經加載進來了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章