Aracılığıyla paylaş


CArchive Nesnesi Oluşturmanın İki Yolu

Nesne oluşturmanın CArchive iki yolu vardır:

Çerçeve Aracılığıyla Örtük Bir CArchive Nesnesi Oluşturma

En yaygın ve en kolay yol, çerçevenin Dosya menüsündeki Kaydet, Farklı Kaydet ve Aç komutları adına belgeniz için bir CArchive nesne oluşturmasına izin vermektir.

Uygulamanızın kullanıcısı Dosya menüsünden Farklı Kaydet komutunu çalıştırdığında çerçevenin ne yaptığı aşağıdadır:

  1. Farklı Kaydet iletişim kutusunu sunar ve kullanıcıdan dosya adını alır.

  2. Kullanıcı tarafından nesne olarak CFile adlandırılan dosyayı açar.

  3. Bu CFile nesneyi işaret eden bir CArchive nesne oluşturur. Çerçeve, nesnesini oluştururken CArchive modu "yükleme" (okuma, seri durumdan çıkarma) yerine "depolama" (yazma, serileştirme) olarak ayarlar.

  4. Serialize Türetilmiş sınıfınızda CDocumenttanımlanan işlevi çağırır ve nesneye bir başvuru iletirCArchive.

Belgenizin Serialize işlevi daha sonra kısa süre sonra açıklandığı gibi nesneye CArchive veri yazar. çerçeve işlevinizden Serialize döndükten sonra nesneyi ve sonra CFile nesneyi yok ederCArchive.

Bu nedenle, çerçevenin CArchive belgeniz için nesne oluşturmasına izin verirseniz, tek yapmanız gereken belgenin Serialize arşive ve arşivden yazıp okuyan işlevini uygulamaktır. Ayrıca, belgenin Serialize işlevinin doğrudan veya dolaylı olarak seri hale getirmesi için türetilmiş nesneler CObjectiçin de uygulamanız Serialize gerekir.

Açık CArchive Nesnesi Oluşturma

Çerçeve aracılığıyla bir belgeyi seri hale getirmenin yanı sıra, nesneye CArchive ihtiyaç duyabileceğiniz başka durumlar da vardır. Örneğin, bir CSharedFile nesneyle temsil edilen Pano'ya ve Panodan verileri seri hale getirmek isteyebilirsiniz. Öte yandan, çerçeve tarafından sunulandan farklı bir dosyayı kaydetmek için bir kullanıcı arabirimi kullanmak da isteyebilirsiniz. Bu durumda, açıkça bir CArchive nesne oluşturabilirsiniz. Bunu, aşağıdaki yordamı kullanarak çerçevenin yaptığı gibi yaparsınız.

Açıkça CArchive nesnesi oluşturmak için

  1. nesnesi CFile veya öğesinden CFiletüretilmiş bir nesne oluşturma.

  2. CFile Aşağıdaki örnekte gösterildiği gibi nesnesini için CArchiveoluşturucuya geçirin:

    CFile theFile;
    theFile.Open(_T("CArchive__Test.txt"), CFile::modeCreate | CFile::modeWrite);
    CArchive archive(&theFile, CArchive::store);
    

    Oluşturucunun ikinci bağımsız değişkeni, arşivin dosyaya CArchive veri depolamak veya dosyadan veri yüklemek için kullanılıp kullanılmayacağını belirten numaralandırılmış bir değerdir. Bir Serialize nesnenin işlevi, arşiv nesnesi için işlevini çağırarak IsStoring bu durumu denetler.

Nesneye veya nesneden CArchive veri depolamayı veya yüklemeyi bitirdiğinizde kapatın. CArchive (ve CFile) nesneleri arşivi (ve dosyasını) otomatik olarak kapatsa da, hatalardan kurtarmayı kolaylaştırdığından bunu açıkça yapmak iyi bir uygulamadır. Hata işleme hakkında daha fazla bilgi için Özel Durumlar: Özel Durumları Yakalama ve Silme makalesine bakın.

CArchive nesnesini kapatmak için

  1. Aşağıdaki örnekte nesnenin nasıl kapatılmaya devam olduğu gösterilmektedir CArchive :

    archive.Close();
    theFile.Close();
    

Ayrıca bkz.

Seri hale getirme: Bir Nesneyi Seri Hale Getirme