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?
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é.
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".