Condividi tramite


Classe CSharedFile

Classe derivata da CMemFile che supporta i file di memoria condivisa.

Sintassi

class CSharedFile : public CMemFile

Membri

Costruttori pubblici

Nome Descrizione
CSharedFile::CSharedFile Costruisce un oggetto CSharedFile.

Metodi pubblici

Nome Descrizione
CSharedFile::D etach Chiude il file di memoria condivisa e restituisce l'handle del blocco di memoria.
CSharedFile::SetHandle Collega il file di memoria condivisa a un blocco di memoria.

Osservazioni:

I file di memoria si comportano come file su disco. La differenza è che un file di memoria viene archiviato in RAM anziché su disco. Un file di memoria è utile per l'archiviazione temporanea veloce o per il trasferimento di byte non elaborati o oggetti serializzati tra processi indipendenti.

I file di memoria condivisa differiscono da altri file di memoria in tale memoria per tali file vengono allocati con la funzione Windows GlobalAlloc . La CSharedFile classe archivia i dati in un blocco di memoria allocato a livello globale (creato tramite GlobalAlloc) e questo blocco di memoria può essere condiviso usando DDE, gli Appunti o altre operazioni di trasferimento dati uniformi OLE/COM, ad esempio usando IDataObject.

GlobalAlloc restituisce un handle HGLOBAL anziché un puntatore alla memoria, ad esempio il puntatore restituito da malloc. L'handle HGLOBAL è necessario in determinate applicazioni. Ad esempio, per inserire dati negli Appunti è necessario un handle HGLOBAL.

CSharedFile non usa file mappati alla memoria e i dati non possono essere condivisi direttamente tra i processi.

CSharedFile gli oggetti possono allocare automaticamente la propria memoria. In alternativa, è possibile collegare il proprio blocco di memoria all'oggetto CSharedFile chiamando CSharedFile::SetHandle. In entrambi i casi, la memoria per l'aumento automatico del file di memoria viene allocata in incrementi di nGrowBytesdimensioni se nGrowBytes non è zero.

Per altre informazioni, vedere l'articolo File in MFC e Gestione dei file nella guida di riferimento alla libreria di runtime.

Gerarchia di ereditarietà

CObject

CFile

CMemFile

CSharedFile

Requisiti

Intestazione: afxadv.h

CSharedFile::CSharedFile

Costruisce un CSharedFile oggetto e alloca la memoria.

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

Parametri

nAllocFlags
Flag che indicano la modalità di allocazione della memoria. Per un elenco di valori di flag validi, vedere GlobalAlloc .

nGrowBytes
Incremento dell'allocazione di memoria in byte.

CSharedFile::D etach

Chiamare questa funzione per chiudere il file di memoria e scollegarlo dal blocco di memoria.

HGLOBAL Detach();

Valore restituito

Handle del blocco di memoria che contiene il contenuto del file di memoria.

Osservazioni:

È possibile riaprirla chiamando SetHandle, usando l'handle restituito da Detach.

CSharedFile::SetHandle

Chiamare questa funzione per collegare un blocco di memoria globale all'oggetto CSharedFile .

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

Parametri

hGlobalMemory
Handle per la memoria globale da associare all'oggetto CSharedFile.

bAllowGrow
Specifica se il blocco di memoria può aumentare.

Osservazioni:

Se bAllowGrow è diverso da zero, le dimensioni del blocco di memoria vengono aumentate in base alle esigenze, ad esempio se si tenta di scrivere più byte nel file rispetto alle dimensioni del blocco di memoria.

Vedi anche

Classe CMemFile
Grafico della gerarchia
Classe CMemFile