Klasy CObject i CRuntimeClass hermetyzacji kilka usług obiektu, łącznie z dostępem do czasu klasy, serializacji i tworzenie dynamicznych obiektów. Wszystkie klasy pochodzące od CObject dziedziczą te funkcje.
Dostęp do informacji klasy czasu umożliwia określenie informacji na temat klasy object w czasie wykonywania. Możliwość określenia klasy obiektu w czasie wykonywania jest przydatne, gdy potrzebna, dodatkowa-kontrola typów argumentów funkcji i kiedy należy napisać kod celowej na podstawie klasy obiektu. Klasy Run-time nie jest obsługiwana bezpośrednio przez języka C++.
Serializacja jest proces zapisywania lub odczytywania zawartości obiektu do lub z pliku. Serializacja można używać do przechowywania zawartości obiektu, nawet po zamyka aplikację. Obiekt można następnie odczytywane z pliku po uruchomieniu aplikacji. Takie obiekty danych są określane jako "trwały".
Tworzenie dynamicznych obiektów umożliwia utworzenie obiektu klasy określonej w czasie wykonywania. Na przykład dokument, widok i obiektów ramki musi obsługiwać tworzenie dynamicznych ponieważ ramach musi utworzyć je dynamicznie.
W poniższej tabeli wymieniono makra MFC, obsługujących informacje klasy run-time, serializacji i dynamiczne tworzenie.
Aby uzyskać więcej informacji dotyczących tych usług czasu obiektu i serializacji, zobacz artykuł CObject klasy: dostęp do informacji klasy Run-Time w Visual C++ Programmer's Guide.
Wykonywalna obiekt modelu usług makra
DECLARE_DYNAMIC | Umożliwia dostęp do informacji klasy run-time (musi być używany w deklaracji klasy). |
DECLARE_DYNCREATE | Umożliwia tworzenie dynamicznych i dostępu do informacji klasy run-time (musi być używany w deklaracji klasy). |
DECLARE_SERIAL | Umożliwia serializacji i dostępu do informacji klasy run-time (musi być używany w deklaracji klasy). |
IMPLEMENT_DYNAMIC | Umożliwia dostęp do informacji klasy run-time (musi być używany w implementacji klasy). |
IMPLEMENT_DYNCREATE | Umożliwia tworzenie dynamicznych i dostępu do informacji run-time (musi być używany w implementacji klasy). |
IMPLEMENT_SERIAL | Pozwala serializacji i dostępu do informacji klasy run-time (musi być używany w implementacji klasy). |
RUNTIME_CLASS | Zwraca strukturę CRuntimeClass , która odpowiada nazwie klasy. |
OLE często wymaga dynamicznego tworzenia obiektów w czasie wykonywania. Na przykład aplikację serwera OLE musi mieć możliwość tworzenia elementów OLE dynamicznie w odpowiedzi na żądanie klienta. Podobnie serwer automatyzacji musi mieć możliwość tworzenia elementów w odpowiedzi na żądania od klientów automatyzacji.
Biblioteka klas Microsoft Foundation zapewnia dwa makra szczególnych OLE.
Dynamiczne tworzenie obiektów OLE
DECLARE_OLECREATE | Umożliwia obiekty utworzone za pomocą automatyzacji OLE. |
IMPLEMENT_OLECREATE | Umożliwia obiekty utworzone przez OLE system. |