CMemFile::Attach

Rufen Sie diese Funktion auf, um ein Speicherblock mit CMemFile anzufügen.

void Attach(
   BYTE* lpBuffer,
   UINT nBufferSize,
   UINT nGrowBytes = 0 
);

Parameter

  • lpBuffer
    Zeiger auf CMemFile angefügt werden, Puffer.

  • nBufferSize
    Eine ganze Zahl, die die Größe des Puffers in Bytes angibt.

  • nGrowBytes
    Das Speicherbelegungsinkrement in Bytes.

Hinweise

Dadurch wird CMemFile, den Speicherblock als die Arbeitsspeicherdatei zu verwenden.

Wenn nGrowBytes 0 ist, legt CMemFile die Dateilänge zu nBufferSize fest.Dies bedeutet, dass die Daten im Speicherblock, bevor es CMemFile angefügt wurde, als die Datei verwendet werden.Die Arbeitsspeicherdateien können erstellt werden, die nicht auf diese Weise, gewachsen werden.

Wenn die Datei nicht gewachsen werden kann, geben Sie vorsichtig, dass Sie nicht CMemFile bewirken zu versuchen, die Datei vergrößert.Beispielsweise erhalten Sie nicht die CMemFile Überschreibungen von Die C-Datei: Schreiben Sie auf, um hinter das Ende zu schreiben oder rufen Sie Die C-Datei: SetLength mit eine Länge nicht länger als nBufferSize auf.

Wenn nGrowBytes größer als 0 ist, ignoriert CMemFile den Inhalt des Speicherblocks, den Sie angefügt haben.Sie müssen den Inhalt der Arbeitsspeicherdatei mithilfe der CMemFile Überschreibung von CFile::Write von Grund auf neu schreiben.Wenn Sie versuchen, hinter das Ende der Datei zu schreiben oder die Datei vergrößert, indem Sie die CMemFile Überschreibung von CFile::SetLength aufrufen, nimmt CMemFile die Speicherbelegung in 1-Pixel-Schritten nach nGrowBytes.Das nicht der Speicherbelegung schlägt fehl, wenn der Speicherblock, den Sie zu Attach führen, nicht mit einer Methode belegt wurde, die mit Alloc kompatibel ist.Um mit der Standardimplementierung von Alloc kompatibel ist, müssen Sie den Speicher mit der Laufzeitbibliotheksfunktion malloc oder calloc zuordnen.

Anforderungen

Header: afx.h

Siehe auch

Referenz

CMemFile-Klasse

Hierarchien-Diagramm

CMemFile::CMemFile

CMemFile::Detach

CMemFile::Alloc

CFile::Write

CFile::SetLength