Partager via


Décompte de références

COM n'essaie pas automatiquement de supprimer un objet de la mémoire lorsqu'il pense que l'objet n'est plus utilisé.À la place, le programmeur d'objet doit supprimer l'objet non utilisé.Le programmeur détermine si un objet peut être supprimé en fonction d'un nombre de références.

COM utilise les méthodes d' IUnknown , AddRef et Version, pour gérer le décompte de références d'interfaces sur un objet.Les règles générales pour appeler ces méthodes sont :

  • Chaque fois qu'un client reçoit un pointeur d'interface, AddRef doit être invité l'interface.

  • Chaque fois que le client a terminé d'utiliser le pointeur d'interface, il doit appeler Release.

Dans une implémentation simple, les index de chaque appel d' AddRef et chaque appel de Release décrémente une variable compteur à l'intérieur de l'objet.Lorsque retourne à zéro de nombre, l'interface n'a plus aucun utilisateur et est libre pour le supprimer de la mémoire.

Le décompte de références peut également être implémenté afin que chaque référence à l'objet (pas à une interface individuelle) soit numérotée.Dans ce cas, les délégués chaque AddRef et appel de Release à une implémentation centrale sur l'objet, et Release libère l'objet entier lorsque ses atteint zéro de décompte de références.

[!REMARQUE]

Lorsque CComObject- l'objet dérivé est construit à l'aide de l'opérateur nouveau , le décompte de références est 0.Par conséquent, un appel à AddRef doit être effectuée après avoir créé avec succès CComObjectobjet dérivé.

Voir aussi

Référence

Introduction à COM

Managing Object Lifetimes through Reference Counting