CMemFile

CMemFile ist die CFile-abgeleitete Klasse, die Speicherdateien unterstützt. Diese Speicherdateien Verhalten sich wie Datenträgerdateien mit der Ausnahme, dass die Datei im Arbeitsspeicher anstatt auf der Festplatte gespeichert ist. Eine Speicherdatei ist nützlich für schnelle temporäre Speicherung oder Übertragung von unformatierten Bytes oder serialisierten Objekten zwischen unabhängigen Prozessen.

CMemFile Objekte können automatisch ihre eigenen Speicher zuweisen oder können Sie Ihr eigenes Speicherblock auf das CMemFile -Objekt durch Aufrufen von Anfügen. In jedem Fall Speicher für den Anbau der Speicherdatei automatisch zugewiesen wird, in nGrowBytes-Größe erhöht, wenn nGrowBytes nicht NULL ist.

Der Speicherblock wird automatisch nach Zerstörung des Objekts CMemFile gelöscht werden, wenn der Arbeitsspeicher wurde ursprünglich vom CMemFile -Objekt; Andernfalls sind Sie verantwortlich für das Freigeben von Speicher, wie, den Sie an das Objekt angefügt.

Sie können den Speicherblock zugreifen, über den Zeiger angegeben, wenn Sie es aus dem CMemFile -Objekt durch Aufrufen von Detach trennen.

Die häufigste Verwendung von CMemFile ist eine CMemFile -Objekt erstellen und es durch Aufrufen von CFile -Memberfunktionen verwenden. Beachten Sie, dass eine CMemFile automatisch erstellen wird geöffnet: Rufen Sie nicht CFile::Open, die nur für Dateien verwendet wird. Da CMemFile eine Datenträgerdatei nicht verwendet, der Datenmember CFile::m_hFile wird nicht verwendet und hat keine Bedeutung.

Die CFile -Memberfunktionen Duplizieren, LockRangeund UnlockRange sind nicht für CMemFileimplementiert. Wenn Sie diese Funktionen für eine CMemFile -Objekt aufrufen, erhalten Sie eine CNotSupportedException.

CMemFile verwendet die Run-Time Bibliothek-Funktionen Malloc, Realloc, und kostenlos zu reservieren, zuordnen und Freigeben von Arbeitsspeicher; und der inneren Memcpy , Block-Kopie-Speicher beim Lesen und schreiben. Wenn Sie dieses Verhalten oder das Verhalten beim CMemFile eine Datei wächst ändern möchten, leiten Sie eine eigene Klasse von CMemFile und überschreiben Sie die entsprechenden Funktionen.

Weitere Informationen über CMemFile, finden Sie in die Artikeln Dateien in MFC und Memory Management Themen (MFC) in den Visual C++ Programmer's Guide und sehen in der Run-Time Library Reference File Handling.

# include lt;afx.h>

Klasse&nmember |nbsp; Basisklasse | Hierarchiediagramm

Index