在 MFC 序列化

這篇文章說明提供在程式庫 (MFC) 以允許持續到其他物件的序列化機制會執行您的程式。

序列化是讀取或寫入物件至或從持續性儲存媒體,如磁碟檔案的程序。序列化是理想的情況下,它需要維護期間或之後執行程式的結構化資料 (例如 C++ 類別或結構) 的狀態。使用 MFC 所提供的序列化物件時,可以讓這個情況發生,以標準且一致的方式,並且免除需要以手動方式執行檔案操作使用者。

MFC 提供序列化的類別中的內建支援CObject。因此,所有的類別衍生自CObject可以利用CObject的序列化通訊協定。

序列化的基本概念是物件應該可以撰寫成目前的狀態,通常是由它到永久儲存區的成員變數的值。經由讀取或還原序列化物件的狀態從儲存區之後,重新建立該物件。序列化會處理物件指標和循環參考,將物件序列化時所使用的物件的所有詳細的資料。重點是物件本身會負責讀取及寫入自身狀態。因此,為可序列化類別,它必須實作基本序列化作業。如同序列化系列文件中所示,很容易就能將這項功能加入至類別。

MFC 會使用物件的CArchive類別當做要序列化的物件與儲存媒體之間的媒介。這個物件會始終與相關聯CFile物件,從 cfile 序列化,包括檔名的必要資訊,以及所要求的作業是讀取還是寫入。執行序列化作業的物件可以使用CArchive而不儲存媒體性質相關的物件。

A CArchive物件將使用多載的插入 (<<) 和擷取 (>>) 運算子來執行寫入和讀取作業。如需詳細資訊,請參閱 Storing,並透過保存的載入 CObjects 中的文件序列化: 序列化物件。

注意事項注意事項

請勿混淆CArchive類別的一般用途的 iostream 類別,也就是為格式化的純文字。CArchive類別適用於二進位格式序列化物件。

如果您想要的選項,您可以略過 MFC 序列化,而建立自己的機制,持續性資料儲存區。您必須覆寫的類別成員函式負責啟始序列化,在使用者的命令。請參閱技術提示 22ID_FILE_OPENID_FILE_SAVE,以及 ID_FILE_SAVE_AS 標準的命令。

下列文件包含序列化所需的兩個主要工作:

發行項序列化: 序列化與 資料庫輸入/輸出告訴您,當序列化時資料庫應用程式中適當的輸入/輸出方法。

請參閱

參考

CArchive 類別

CObject 類別

CDocument 類別

CFile 類別

概念

一般 MFC 主題

其他資源

MFC 概念