在 MFC 序列化
這篇文章說明提供在程式庫 (MFC) 以允許持續到其他物件的序列化機制會執行您的程式。
序列化是讀取或寫入物件至或從持續性儲存媒體,如磁碟檔案的程序。 序列化是理想的情況下,它需要維護期間或之後執行程式的結構化資料 (例如 C++ 類別或結構) 的狀態。 使用 MFC 所提供的序列化物件時,可以讓這個情況發生,以標準且一致的方式,並且免除需要以手動方式執行檔案操作使用者。
MFC 提供序列化的類別中的內建支援CObject。 因此,所有的類別衍生自CObject可以利用CObject的序列化通訊協定。
序列化的基本概念是物件應該可以撰寫成目前的狀態,通常是由它到永久儲存區的成員變數的值。 經由讀取或還原序列化物件的狀態從儲存區之後,重新建立該物件。 序列化會處理物件指標和循環參考,將物件序列化時所使用的物件的所有詳細的資料。 重點是物件本身會負責讀取及寫入自身狀態。 因此,為可序列化類別,它必須實作基本序列化作業。 如同序列化系列文件中所示,很容易就能將這項功能加入至類別。
MFC 會使用物件的CArchive類別當做要序列化的物件與儲存媒體之間的媒介。 這個物件會始終與相關聯CFile物件,從 cfile 序列化,包括檔名的必要資訊,以及所要求的作業是讀取還是寫入。 執行序列化作業的物件可以使用CArchive而不儲存媒體性質相關的物件。
A CArchive物件將使用多載的插入 (<<) 和擷取 (>>) 運算子來執行寫入和讀取作業。 如需詳細資訊,請參閱 Storing,並透過保存的載入 CObjects 中的文件序列化: 序列化物件。
注意事項 |
---|
請勿混淆CArchive類別的一般用途的 iostream 類別,也就是為格式化的純文字。CArchive類別適用於二進位格式序列化物件。 |
如果您想要的選項,您可以略過 MFC 序列化,而建立自己的機制,持續性資料儲存區。 您必須覆寫的類別成員函式負責啟始序列化,在使用者的命令。 請參閱技術提示 22 的ID_FILE_OPEN, ID_FILE_SAVE,以及 ID_FILE_SAVE_AS 標準的命令。
下列文件包含序列化所需的兩個主要工作:
發行項序列化: 序列化與 資料庫輸入/輸出告訴您,當序列化時資料庫應用程式中適當的輸入/輸出方法。