Share via


CSharedFile-klasse

Opmerking

De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

De CMemFile-afgeleide klasse die gedeelde geheugenbestanden ondersteunt.

Syntaxis

class CSharedFile : public CMemFile

Leden

Openbare constructors

Naam Description
CSharedFile::CSharedFile Maakt een CSharedFile object.

Openbare methoden

Naam Description
CSharedFile::D etach Sluit het gedeelde geheugenbestand en retourneert de ingang van het geheugenblok.
CSharedFile::SetHandle Hiermee wordt het gedeelde geheugenbestand gekoppeld aan een geheugenblok.

Opmerkingen

Geheugenbestanden gedragen zich als schijfbestanden. Het verschil is dat een geheugenbestand wordt opgeslagen in het RAM-geheugen in plaats van op schijf. Een geheugenbestand is handig voor snelle tijdelijke opslag of voor het overdragen van onbewerkte bytes of geserialiseerde objecten tussen onafhankelijke processen.

Gedeelde geheugenbestanden verschillen van andere geheugenbestanden in dat geheugen voor deze bestanden worden toegewezen met de functie GlobalAlloc Windows. De CSharedFile klasse slaat gegevens op in een globaal toegewezen geheugenblok (gemaakt met behulp van GlobalAlloc) en dit geheugenblok kan worden gedeeld met DDE, het Klembord of andere uniforme OLE/COM-gegevensoverdrachtbewerkingen, bijvoorbeeld met behulp van IDataObject.

GlobalAlloc retourneert een HGLOBAL-greep in plaats van een aanwijzer naar geheugen, zoals de aanwijzer die wordt geretourneerd door malloc. De HGLOBAL-ingang is nodig in bepaalde toepassingen. Als u bijvoorbeeld gegevens op het Klembord wilt plaatsen, hebt u een HGLOBAL-greep nodig.

CSharedFile maakt geen gebruik van geheugen toegewezen bestanden en de gegevens kunnen niet rechtstreeks worden gedeeld tussen processen.

CSharedFile objecten kunnen automatisch hun eigen geheugen toewijzen. U kunt ook uw eigen geheugenblok aan het CSharedFile object koppelen door CSharedFile::SetHandle aan te roepen. In beide gevallen wordt geheugen voor het automatisch uitbreiden van het geheugenbestand toegewezen in nGrowBytesincrementele grootte als nGrowBytes dit niet nul is.

Zie het artikel Bestanden in MFC en Bestandsafhandeling in de Run-Time Bibliotheekreferentie voor meer informatie.

Overnamehiƫrarchie

CObject

CFile

CMemFile

CSharedFile

Requirements

Koptekst: afxadv.h

CSharedFile::CSharedFile

Hiermee maakt u een CSharedFile object en wijst u er geheugen voor toe.

CSharedFile(
    UINT nAllocFlags = GMEM_DDESHARE | GMEM_MOVEABLE,
    UINT nGrowBytes = 4096);

Parameterwaarden

nAllocFlags
Vlaggen die aangeven hoe geheugen moet worden toegewezen. Zie GlobalAlloc voor een lijst met geldige vlagwaarden.

nGrowBytes
De toename van de geheugentoewijzing in bytes.

CSharedFile::D etach

Roep deze functie aan om het geheugenbestand te sluiten en los te koppelen van het geheugenblok.

HGLOBAL Detach();

Retourwaarde

De ingang van het geheugenblok dat de inhoud van het geheugenbestand bevat.

Opmerkingen

U kunt deze opnieuw openen door SetHandle aan te roepen met behulp van de ingang die wordt geretourneerd door Loskoppelen.

CSharedFile::SetHandle

Roep deze functie aan om een blok globaal geheugen aan het CSharedFile object te koppelen.

void SetHandle(
    HGLOBAL hGlobalMemory,
    BOOL bAllowGrow = TRUE);

Parameterwaarden

hGlobalMemory
Handle to the global memory to be attached to the CSharedFile.

bAllowGrow
Hiermee geeft u op of het geheugenblok mag groeien.

Opmerkingen

Als bAllowGrow niet-nul is, wordt de grootte van het geheugenblok indien nodig verhoogd, bijvoorbeeld als u probeert meer bytes naar het bestand te schrijven dan de grootte van het geheugenblok.

Zie ook

CMemFile-klasse
Hiƫrarchiegrafiek
CMemFile-klasse