Supposons que vous procédiez comme suit:Les objets COM sont-ils responsables de conserver leur propre module en mémoire?
1) Chargez foo.dll à l'aide de LoadLibrary.
2) Obtenir un pointeur sur une fonction en utilisant GetProcAddress.
3) Invoquer la fonction, en vous donnant une référence à un objet COM implémenté dans ce module.
4) Gratuit foo.dll en appelant FreeLibrary.
5) Appelez une méthode sur l'objet COM.
Voulez-vous que l'étape 5 réussisse et ne fonctionne pas? En d'autres termes, l'objet COM est-il lui-même chargé d'appeler LoadLibrary (à nouveau) pour incrémenter le nombre de références que Windows conserve pour chaque module, garantissant ainsi qu'il ne survit pas au module?
Comment la DLL suit-elle les références en suspens en ce qui concerne l'appel DllCanUnloadNow? Merci! –
Cependant, il veut. où le constructeur/destructeur pour chaque objet COM incrémente/décrémente un nombre de références globales pour le module, et DllCanUnloadNow vérifie juste ce compte ref. – Michael