Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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
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.