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 nGrowBytes
dimensioni 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à
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.