Sdílet prostřednictvím


CSharedFile – třída

CMemFile odvozená třída, která podporuje sdílené paměťové soubory.

Syntaxe

class CSharedFile : public CMemFile

Členové

Veřejné konstruktory

Název Popis
CSharedFile::CSharedFile CSharedFile Vytvoří objekt.

Veřejné metody

Název Popis
CSharedFile::D etach Zavře soubor sdílené paměti a vrátí popisovač jeho bloku paměti.
CSharedFile::SetHandle Připojí sdílený soubor paměti k bloku paměti.

Poznámky

Soubory paměti se chovají jako diskové soubory. Rozdíl je v tom, že soubor paměti je uložený v paměti RAM místo na disku. Soubor paměti je užitečný pro rychlé dočasné úložiště nebo pro přenos nezpracovaných bajtů nebo serializovaných objektů mezi nezávislými procesy.

Sdílené soubory paměti se liší od jiných paměťových souborů v této paměti pro ně je přidělena funkce GlobalAlloc Windows. Třída CSharedFile ukládá data do globálně přiděleného paměťového bloku (vytvořeného GlobalAllocpomocí) a tento blok paměti lze sdílet pomocí DDE, schránky nebo jiných operací jednotného přenosu dat OLE/COM, například pomocí IDataObject.

GlobalAlloc vrátí úchyt HGLOBAL místo ukazatele na paměť, například ukazatel vrácený malloc. Úchyt HGLOBAL je potřeba v určitých aplikacích. Například k vložení dat do schránky potřebujete úchyt HGLOBAL.

CSharedFile nepoužívá soubory mapované do paměti a data se nedají přímo sdílet mezi procesy.

CSharedFile objekty mohou automaticky přidělit vlastní paměť. Nebo můžete k objektu CSharedFile připojit vlastní blok paměti voláním CSharedFile::SetHandle. V obou případech je paměť pro růst souboru paměti automaticky přidělena v nGrowBytespřírůstcích velikosti, pokud nGrowBytes není nula.

Další informace najdete v článku Soubory v prostředí MFC a zpracování souborů v referenčních informacích knihovny za běhu.

Hierarchie dědičnosti

Objekt CObject

CFile

CMemFile

CSharedFile

Požadavky

Hlavička: afxadv.h

CSharedFile::CSharedFile

CSharedFile Vytvoří objekt a přidělí pro něj paměť.

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

Parametry

nAllocFlags
Příznaky označující, jak se má přidělit paměť. Seznam platných hodnot příznaku najdete v tématu GlobalAlloc .

nGrowBytes
Přidělení paměti se zvýší v bajtech.

CSharedFile::D etach

Voláním této funkce zavřete soubor paměti a odpojte ho od bloku paměti.

HGLOBAL Detach();

Návratová hodnota

Popisovač bloku paměti, který obsahuje obsah souboru paměti.

Poznámky

Můžete ho znovu otevřít voláním SetHandle pomocí popisovače vrácené detach.

CSharedFile::SetHandle

Voláním této funkce připojíte k objektu CSharedFile blok globální paměti.

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

Parametry

hGlobalMemory
Popisovač globální paměti, která se má připojit k objektu CSharedFile.

bAllowGrow
Určuje, jestli se může zvětšit blok paměti.

Poznámky

Pokud bAllowGrow je nenulová, velikost bloku paměti se podle potřeby zvýší, například pokud se pokusíte napsat více bajtů do souboru, než je velikost paměťového bloku.

Viz také

CMemFile – třída
Graf hierarchie
CMemFile – třída