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 GlobalAlloc
pomocí) 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 nGrowBytes
pří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
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.