Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
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
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.