cs_homer_
Messages postés4Date d'inscriptionlundi 18 juin 2007StatutMembreDernière intervention21 juin 2007
-
18 juin 2007 à 17:41
cs_homer_
Messages postés4Date d'inscriptionlundi 18 juin 2007StatutMembreDernière intervention21 juin 2007
-
19 juin 2007 à 10:06
Bonjour,
J'ai développé une application CF qui encapsule une dll C++ non managé.
Cette dll déclanche une callback dans l'application principal en lui passant un buffer.
Tout ce petit mécanisme fonctionne très bien si la form de l'application principale est au premier plan. Mais lorsque je fais venir au premier plan une autre application (ex : un explorateur), l'application disparait (!!) à la notification de la callback, et ceci sans aucun message d'erreur, exception ou autres.
Est-ce que quelqu'un aurait déjà observé ce comportement?
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 18 juin 2007 à 19:42
Salut, je vois pas trop.. mais l'erreur courante avec les callbacks managés c'est de ne pas maintenir une référence du délegué et donc inévitablement le GC fini par ramasser le délégué et y'a plantage dans le code non-managé.
cs_homer_
Messages postés4Date d'inscriptionlundi 18 juin 2007StatutMembreDernière intervention21 juin 2007 19 juin 2007 à 10:06
Merci, c'était exactement mon problème.
Je ne gardait pas de référence sur mon delegate, et lorsque mon application passaite en arrière plan, le GC devait se déclancher et il supprimait la référence sur la callback. Et la dll appelant cette callback se retrouvait à "jardiner".