Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Podstawową ideą trwałości jest to, że obiekt powinien mieć możliwość zapisania jego bieżącego stanu, wskazanego przez wartości zmiennych składowych, do magazynu trwałego. Później obiekt można utworzyć ponownie, odczytując lub "deserializując" stan obiektu z trwałej pamięci. Kluczowym punktem jest to, że sam obiekt jest odpowiedzialny za odczytywanie i zapisywanie własnego stanu. W związku z tym, aby klasa była trwała, musi zaimplementować podstawowe operacje serializacji.
Struktura zapewnia domyślną implementację zapisywania dokumentów na plikach dysków w odpowiedzi na polecenia Zapisz i Zapisz jako w menu Plik oraz ładowania dokumentów z plików dysku w odpowiedzi na polecenie Otwórz. Przy bardzo małym nakładzie pracy można zaimplementować możliwość zapisu i odczytywania danych dokumentu do i z pliku. Główną rzeczą, którą należy wykonać, jest zastąpienie funkcji składowej Serialize w swojej klasie dokumentu.
Kreator aplikacji MFC umieszcza szkieletowe przeciążenie funkcji składowej CDocumentSerialize w klasie dokumentu, którą tworzy dla Ciebie. Po zaimplementowaniu zmiennych składowych aplikacji możesz wypełnić Serialize przesłonięć kodem, który wysyła dane do "obiektu archiwum" połączonego z plikiem. Obiekt CArchive jest podobny do obiektów wejścia/wyjścia cin i cout z biblioteki iostream języka C++.
CArchive Jednak zapisuje i odczytuje format binarny, a nie formatowany tekst.
Co chcesz dowiedzieć się więcej o
Rola dokumentu w serializacji
Framework automatycznie odpowiada na polecenia Otwórz, Zapisz i Zapisz jako w menu Plik, wywołując funkcję składową dokumentuSerialize, jeśli jest zaimplementowana. Na przykład polecenie ID_FILE_OPEN wywołuje funkcję obsługi w obiekcie aplikacji. Podczas tego procesu użytkownik widzi i odpowiada na okno dialogowe Otwieranie pliku, a platforma uzyskuje nazwę pliku wybraną przez użytkownika. Struktura tworzy CArchive skonfigurowany obiekt do ładowania danych do dokumentu i przekazuje archiwum do Serialize. Struktura otworzyła już plik. Kod w funkcji składowej Serialize dokumentu odczytuje dane za pośrednictwem archiwum, rekonstruując obiekty danych zgodnie z potrzebami. Aby uzyskać więcej informacji na temat serializacji, zobacz artykuł Serializacja.
Rola danych w serializacji
Ogólnie rzecz biorąc, dane typu klasy powinny być w stanie serializować się. Oznacza to, że po przekazaniu obiektu do archiwum obiekt powinien wiedzieć, jak zapisywać się w archiwum i jak odczytywać się z archiwum. MFC zapewnia obsługę serializacji klas w ten sposób. Jeśli projektujesz klasę w celu zdefiniowania typu danych i zamierzasz serializować dane tego typu, zaprojektuj ją z myślą o serializacji.