クラスCObjectとCRuntimeClassオブジェクトの動的生成、シリアル化、ランタイム クラス情報へのアクセスなど、いくつかのオブジェクト サービスをカプセル化します。この機能のCObjectから派生したすべてのクラスの継承します。
ランタイム クラス情報へのアクセスを実行時にオブジェクトのクラスに関する情報を確認することができます。実行時にオブジェクトのクラスを決定する機能は、余分な型チェックの関数の引数とオブジェクトのクラスに基づいた専用コードを記述する必要があります必要がある場合に役立ちます。ランタイム クラス情報、C++ 言語で直接サポートされていません。
シリアル化の書き込みまたはオブジェクトの内容またはファイルからのプロセスです。シリアル化を使用しても、アプリケーションが終了した後、オブジェクトの内容を格納できます。アプリケーションを再起動すると、オブジェクトは [をファイルから読むことができます。このようなデータ オブジェクトが「固定」すると言われています。
オブジェクトの動的生成を実行時に、指定したクラスのオブジェクトを作成することができます。フレームワークを動的に作成する必要があるなど、ドキュメント、ビュー、およびフレーム オブジェクト動的作成をサポートする必要があります。
ランタイム クラス情報、シリアル化、および動的作成をサポートする MFC マクロを次に示します。
これらのランタイム オブジェクト サービスとシリアル化の詳細については、参照してください CObject クラス: ランタイム クラス情報へのアクセスでVisual の C++ プログラマのガイド。
| DECLARE_DYNAMIC | (クラス宣言で使用する必要があります) 実行時のクラス情報にアクセスできるように。 |
| DECLARE_DYNCREATE | 動的作成と (クラス宣言で使用する必要があります) 実行時のクラス情報にアクセスすることができます。 |
| DECLARE_SERIAL | シリアル化およびランタイム クラス情報 (クラス宣言で使用する必要があります) へのアクセスを有効に。 |
| IMPLEMENT_DYNAMIC | (クラスの実装で使用する必要があります) 実行時のクラス情報にアクセスできるように。 |
| IMPLEMENT_DYNCREATE | 動的作成と (クラスの実装で使用する必要があります) 実行時の情報にアクセスすることができます。 |
| IMPLEMENT_SERIAL | シリアル化およびランタイム クラス情報 (クラスの実装で使用する必要があります) へのアクセスを許可します。 |
| RUNTIME_CLASS | 名前付きのクラスに対応するCRuntimeClass構造を返します。 |
OLE オブジェクトを動的に作成する実行時に頻繁に必要があります。たとえば、OLE サーバー アプリケーションはクライアントからの要求に対する応答で OLE アイテムを動的に作成する必要があります。同様に、オートメーション サーバー オートメーション クライアントからのリクエストに応えてアイテムを作成する必要があります。
Microsoft Foundation クラス ライブラリに OLE の 2 つのマクロを特定の提供します。
OLE オブジェクトの動的生成
| DECLARE_OLECREATE | オブジェクトが OLE オートメーションを通じて作成することができます。 |
| IMPLEMENT_OLECREATE | オブジェクト、OLE システムによって作成を可能に。 |