Share via


CSharedFile, classe

Classe dérivée de CMemFile qui prend en charge les fichiers de mémoire partagée.

Syntaxe

class CSharedFile : public CMemFile

Membres

Constructeurs publics

Nom Description
CSharedFile ::CSharedFile Construit un objet CSharedFile.

Méthodes publiques

Nom Description
CSharedFile ::D etach Ferme le fichier de mémoire partagée et retourne le handle de son bloc de mémoire.
CSharedFile ::SetHandle Attache le fichier de mémoire partagée à un bloc de mémoire.

Notes

Les fichiers mémoire se comportent comme des fichiers de disque. La différence est qu’un fichier mémoire est stocké dans la RAM plutôt que sur le disque. Un fichier mémoire est utile pour le stockage temporaire rapide, ou pour transférer des octets bruts ou des objets sérialisés entre des processus indépendants.

Les fichiers de mémoire partagée diffèrent d’autres fichiers mémoire dans cette mémoire pour eux sont alloués avec la fonction Windows GlobalAlloc . La CSharedFile classe stocke les données dans un bloc de mémoire alloué globalement (créé à l’aide GlobalAllocde ), et ce bloc de mémoire peut être partagé à l’aide de DDE, du Presse-papiers ou d’autres opérations de transfert de données uniformes OLE/COM, par exemple, à l’aide IDataObjectde .

GlobalAlloc retourne un handle HGLOBAL plutôt qu’un pointeur vers la mémoire, tel que le pointeur retourné par malloc. Le handle HGLOBAL est nécessaire dans certaines applications. Par exemple, pour placer des données dans le Presse-papiers, vous avez besoin d’un handle HGLOBAL.

CSharedFile n’utilise pas de fichiers mappés en mémoire et les données ne peuvent pas être partagées directement entre les processus.

CSharedFile les objets peuvent allouer automatiquement leur propre mémoire. Vous pouvez également attacher votre propre bloc de mémoire à l’objet CSharedFile en appelant CSharedFile ::SetHandle. Dans les deux cas, la mémoire de croissance du fichier de mémoire est automatiquement allouée par nGrowBytesincréments dimensionnés si nGrowBytes ce n’est pas zéro.

Pour plus d’informations, consultez l’article Fichiers dans MFC et Gestion des fichiers dans la référence de la bibliothèque d’exécution.

Hiérarchie d'héritage

CObject

CFile

CMemFile

CSharedFile

Spécifications

En-tête : afxadv.h

CSharedFile ::CSharedFile

Construit un CSharedFile objet et alloue de la mémoire pour celui-ci.

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

Paramètres

nAllocFlags
Indicateurs indiquant la façon dont la mémoire doit être allouée. Consultez GlobalAlloc pour obtenir la liste des valeurs d’indicateur valides.

nGrowBytes
Incrément d’allocation de mémoire en octets.

CSharedFile ::D etach

Appelez cette fonction pour fermer le fichier mémoire et le détacher du bloc de mémoire.

HGLOBAL Detach();

Valeur de retour

Handle du bloc de mémoire qui contient le contenu du fichier mémoire.

Notes

Vous pouvez le rouvrir en appelant SetHandle, à l’aide du handle retourné par Detach.

CSharedFile ::SetHandle

Appelez cette fonction pour attacher un bloc de mémoire globale à l’objet CSharedFile .

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

Paramètres

hGlobalMemory
Gérez la mémoire globale à attacher à l’objet CSharedFile.

bAllowGrow
Spécifie si le bloc de mémoire est autorisé à croître.

Notes

Si bAllowGrow est différent de zéro, la taille du bloc de mémoire est augmentée si nécessaire, par exemple si vous tentez d’écrire plus d’octets dans le fichier que la taille du bloc de mémoire.

Voir aussi

CMemFile, classe
Graphique hiérarchique
CMemFile, classe