Megosztás a következőn keresztül:


CSharedFile osztály

Megjegyzés:

A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.

A megosztott memóriafájlokat támogató CMemFile-származtatott osztály.

Szemantika

class CSharedFile : public CMemFile

Tagok

Nyilvános konstruktorok

Név Description
CSharedFile::CSharedFile Egy CSharedFile objektumot hoz létre.

Nyilvános metódusok

Név Description
CSharedFile::D etach Bezárja a megosztott memóriafájlt, és visszaadja a memóriablokk leíróját.
CSharedFile::SetHandle A megosztott memóriafájlt egy memóriablokkhoz csatolja.

Megjegyzések

A memóriafájlok lemezfájlokként viselkednek. A különbség az, hogy a memóriafájlokat nem a lemezen, hanem a RAM tárolja. A memóriafájlok hasznosak gyors ideiglenes tároláshoz, illetve nyers bájtok vagy szerializált objektumok független folyamatok közötti átviteléhez.

A megosztott memóriafájlok eltérnek a többi memóriafájltól abban a memóriában, amelyet a GlobalAlloc Windows függvény foglal le. Az CSharedFile osztály egy globálisan lefoglalt (a használatával GlobalAlloclétrehozott) memóriablokkban tárolja az adatokat, és ez a memóriablokk megosztható például a DDE, a vágólap vagy más egységes OLE/COM adatátviteli műveletek használatával IDataObject.

GlobalAlloc Egy HGLOBAL-leírót ad vissza a memória felé mutató mutató helyett, például a malloc által visszaadott mutatót. A HGLOBAL leíróra bizonyos alkalmazásokban szükség van. Ha például adatokat szeretne elhelyezni a vágólapon, szüksége van egy HGLOBAL-leíróra.

CSharedFile nem használ memórialeképezett fájlokat, és az adatok nem oszthatók meg közvetlenül a folyamatok között.

CSharedFile az objektumok automatikusan lefoglalhatják saját memóriájukat. A CSharedFile::SetHandle meghívásával saját memóriablokkot is csatolhat az CSharedFile objektumhoz. A memóriafájl automatikus növeléséhez szükséges memória mindkét esetben -méretű növekményekben van lefoglalva nGrowBytes, ha nGrowBytes nem nulla.

További információ: Fájlok az MFC-ben és a fájlkezelés a Run-Time könyvtár referenciájában.

Öröklési hierarchia

CObject

CFile

CMemFile

CSharedFile

Requirements

Fejléc: afxadv.h

CSharedFile::CSharedFile

Létrehoz egy CSharedFile objektumot, és lefoglalja a memóriát.

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

Paraméterek

nAllocFlags
A memória lefoglalását jelző jelzők. Az érvényes jelölőértékek listáját a GlobalAllocban találja.

nGrowBytes
A memóriafoglalás növekedése bájtban.

CSharedFile::D etach

Hívja meg ezt a függvényt a memóriafájl bezárásához és a memóriablokkból való leválasztásához.

HGLOBAL Detach();

Visszaadott érték

A memóriafájl tartalmát tartalmazó memóriablokk leírója.

Megjegyzések

A SetHandle meghívásával újra megnyithatja a Leválasztás által visszaadott fogóponttal.

CSharedFile::SetHandle

A függvény meghívásával globális memóriablokkot csatolhat az CSharedFile objektumhoz.

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

Paraméterek

hGlobalMemory
Kezelje a globális memóriát, amely a CSharedFile.

bAllowGrow
Megadja, hogy a memóriablokk növekedjen-e.

Megjegyzések

Ha a bAllowGrow nem ero, a memóriablokk mérete szükség szerint megnő, például ha több bájtot próbál írni a fájlba, mint a memóriablokk mérete.

Lásd még

CMemFile osztály
hierarchiadiagram
CMemFile osztály