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 GlobalAlloc
de ), 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 IDataObject
de .
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 nGrowBytes
incré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
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.