[VB6] Liberer la memoire utilisée par une variable Objet
:aie:
j'utilise un objet du type "Word.Application" (referencé dans mon projet),
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| Option Explicit
Dim Appli As Word.Application
Dim AppliOk As Boolean
Private Sub Form_Load()
On Error Resume Next
Set Appli = GetObject(, "Word.Application")
DoEvents
If Err.Number = 0 Then
AppliOk = True
Else
On Error GoTo 0
AppliOk = False
MsgBox "pas bon"
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
If AppliOk = True Then Set Appli = Nothing: DoEvents
End
End Sub |
Le probleme est que dans le gestionnaire des taches de windows, onglet "Processus", je m'apercois que le processus "winword.exe" n'ai pas dechargé par la ligne de commande, "If AppliOk = True Then Set Appli = Nothing: DoEvents" de la procedure Private Sub Form_Unload.
j'ai bien sûr verifié que ma variable AppliOk = True et que Set Appli = Nothing est executé.
Pourtant, a chaques nouveaux demarages du programme, une nouvelle ligne apparait dans le gestionnaire des taches de windows.
Ce qui expliquerait que pour chaques nouveaux lancements du programme, celui-ci met de plus en plus de temps a ce charger et a s'executer.
De plus je pense qu'au bout d'un certain nombre de lancement du programme, celui-ci va ce planter.
J'avais cru comprendre que pour decharger en memoire une variable objet il fallait la passer en Nothing. :?
Je doute de plus en plus de savoir programmer ....... :(
Merci de votre aide