Detruire un activeX

cs_sephiro Messages postés 101 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 18 février 2008 - 19 févr. 2007 à 12:05
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 - 19 févr. 2007 à 17:10
Bonjour
J'ai écris un AciveX en C++ (Win32) avec ATL, il fonctionne tres bien mais je ne parviens pas à le détruire par programme.
Pour le créer :
AxSC_CtrlLib.

AxSC_Media SC_Media =
new AxSC_CtrlLib.
AxSC_Media();
this.Controls.Add(SC_Media);      // je le mets dans ma fenetre

OK Il est créé
 j'ai acces à ces données
SC_Media.Proportion =true;
j'ai acces à ces fonctions
SC_Media.GoLive();

Mais si je veux le détruire je pensais faire
SC_Media=Null; et bien non, marche pas si vous avez une idée elle sera la bien venu

Merci
Sephiro

3 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
19 févr. 2007 à 12:10
A essayer... car je n'utilise jamais : Marshal.ReleaseComObject();

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0
cs_sephiro Messages postés 101 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 18 février 2008
19 févr. 2007 à 12:58
Non ça ne fonctionne pas.
Je peux débbugger mon activeX en utilisant mon programme fait en C#, et si je quitte mon programme, ma fonction destruction de mon activeX est lancée, mais si je fais SC_Media=Null; ma fonction destruction n'est pas lancé donc mon activeX n'est pas détruit.

Sephiro
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
19 févr. 2007 à 17:10
Salut, normal, passer la référence à null ne signifie pas que le GC va passer immédiatement.. en CSharp les destructeurs ne sont pas déterministes.

http://www.csharpfr.com/infomsg_PERTE-MEMOIRE-MEMORY-LEAK-POUR-MSCOMM-WEBBROWSER_885979.aspx
0
Rejoignez-nous