CArchive::WriteObject
アーカイブに指定 CObject を格納します。
void WriteObject(
const CObject* pOb
);
パラメーター
- pOb
格納されているオブジェクトへの定数ポインター。
解説
この関数は CObjectに対してオーバーロードされた CArchive の挿入 (<<) 演算子で一般的に呼び出されます。WriteObjectは、アーカイブしたクラスの Serialize 関数を呼び出します。
アーカイブするオプションを有効にするには IMPLEMENT_SERIAL のマクロを使用する必要があります。WriteObject はアーカイブが ASCII のクラス名を書き込みます。このクラス名は読み込み中に検証されます。特殊なエンコーディング方式と、クラスの複数のオブジェクトのクラス名の不要な重複を回避できます。この設定は、複数のポインターの対象であるオブジェクトの余分なストレージを防ぎます。
厳密なオブジェクト (ASCII エンコーディング メソッドのクラス名を含めるか) の実装の詳細で、ライブラリの将来のバージョンで変更できます。
[!メモ]
これらをアーカイブを開始する前に、そのオブジェクトをすべて作成、削除、更新を終了します。は、のアーカイブ オブジェクトの変更でアーカイブすることを混在させると破損しています。
使用例
クラス CAgeの定義については、CObList::CObListの例を参照してください。
CFile myFile(_T("My__test__file.dat"),
CFile::modeCreate | CFile::modeReadWrite);
CAge age(21), *pAge;
// Create a storing archive.
CArchive arStore(&myFile, CArchive::store);
// Write the object to the archive
arStore.WriteObject(&age);
// Close the storing archive
arStore.Close();
// Create a loading archive.
myFile.SeekToBegin();
CArchive arLoad(&myFile, CArchive::load);
// Verify the object is in the archive.
pAge = (CAge*) arLoad.ReadObject(RUNTIME_CLASS(CAge));
ASSERT(age == *pAge);
必要条件
ヘッダー : afx.h