Freigeben über


Angeben von Ebenen der Funktionen

In diesem Artikel wird beschrieben, wie die folgenden Ebenen der Funktionalität der von CObject abgeleitete Klasse hinzugefügt wird:

  • Der Ablauf klasseninformationen

  • Dynamische Unterstützung für Builds

  • Serialisierungsunterstützung

Für eine allgemeine Beschreibung der CObject-Funktionen finden Sie im Artikel Eine Klasse von CObject abgeleitete.

So klasseninformationen Laufzeit hinzufügen

  1. Leiten Sie die Klasse von CObject, wie im Eine Klasse von CObject abgeleitete-Elemente beschrieben.

  2. Verwenden Sie das DECLARE_DYNAMIC Makro in der Klassendeklaration, wie hier gezeigt:

    class CPerson : public CObject 
    {
       DECLARE_DYNAMIC( CPerson )
    
       // other declarations
    };
    
  3. Verwenden Sie das IMPLEMENT_DYNAMIC Makro in der Implementierungsdatei (.CPP) Ihrer Klasse.Dieses Makro als Argumente übernimmt den Namen der Klasse und ihrer Basisklassen wie folgt:

    IMPLEMENT_DYNAMIC( CPerson, CObject )
    
HinweisHinweis

Setzen Sie immer IMPLEMENT_DYNAMIC in der Implementierungsdatei (.CPP) für die Klasse ein.Das IMPLEMENT_DYNAMIC Makro sollte nur einmal während der Kompilierung ausgewertet werden und darf daher nicht in der Schnittstellendatei (verwendet werden. H), das in mehr als einer Datei aufgenommen werden kann.

Um dynamische Hinzufügen von Unterstützung für Builds

  1. Leiten Sie die Klasse von CObject.

  2. Verwenden Sie das DECLARE_DYNCREATE Makro in der Klassendeklaration.

  3. Definieren Sie einen Konstruktor ohne Argumente (ein Standardkonstruktor).

  4. Verwenden Sie das IMPLEMENT_DYNCREATE Makro in der Datei Klassenimplementierungs.

Um Serialisierungsunterstützung hinzu

  1. Leiten Sie die Klasse von CObject.

  2. Überschreiben Sie die Serialize-Memberfunktion.

    HinweisHinweis

    Wenn Sie Serialize direkt aufrufen möchten. h. nicht das Objekt durch einen polymorphen Zeiger serialisieren, weglassen die Schritte 3 bis 5.

  3. Verwenden Sie das DECLARE_SERIAL Makro in der Klassendeklaration.

  4. Definieren Sie einen Konstruktor ohne Argumente (ein Standardkonstruktor).

  5. Verwenden Sie das IMPLEMENT_SERIAL Makro in der Datei Klassenimplementierungs.

HinweisHinweis

Ein "polymorpher Zeiger" zeigt auf ein Objekt einer Klasse (Invoke es A) oder auf ein Objekt einer Klasse abgeleitet von A (sagen Sie b).Um einen polymorphen Zeiger zu serialisieren, muss das Framework die Laufzeitklasse des Objekts ermitteln, welche sie (b) serialisiert, da hierbei möglicherweise ein Objekt einer Klasse sein, die von einigen Basisklasse (A) abgeleitet ist.

Weitere Informationen über die Verwendung der Serialisierung, wenn Sie die Klasse von CObject abgeleitet sind, finden Sie in den Artikeln Dateien in MFC und Serialisierung aktiviert.

Siehe auch

Konzepte

Ableiten einer Klasse von CObject