Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème de fermeture d'une application

4 réponses
Avatar
jyM
Salut au groupe
J'ai développé une application professionnelle en VB6 (bien que je ne
soit pas un pro de la programmation).
C'est un peu du genre usine à gaz, mais ça me rend d'immenses services.
Problème:
Il reste toujours une occurence de l'exécutable en mémoire quand je
ferme la feuille principale en cliquant sur le bouton "fermeture".
Comment faire en sorte que l'application se retire de la mémoire ?

Merci

4 réponses

Avatar
tking
jyM avait soumis l'idée :
Salut au groupe
J'ai développé une application professionnelle en VB6 (bien que je ne soit
pas un pro de la programmation).
C'est un peu du genre usine à gaz, mais ça me rend d'immenses services.
Problème:
Il reste toujours une occurence de l'exécutable en mémoire quand je ferme la
feuille principale en cliquant sur le bouton "fermeture".
Comment faire en sorte que l'application se retire de la mémoire ?

Merci





unload
end


Éventuellement si il y a des timers, les arrêter.
Avatar
Jean-marc
jyM wrote:
Salut au groupe
J'ai développé une application professionnelle en VB6 (bien que je ne
soit pas un pro de la programmation).
C'est un peu du genre usine à gaz, mais ça me rend d'immenses
services. Problème:
Il reste toujours une occurence de l'exécutable en mémoire quand je
ferme la feuille principale en cliquant sur le bouton "fermeture".
Comment faire en sorte que l'application se retire de la mémoire ?

Merci



Hello,

il peut y avoir des dizaines de causes, on en a parlé et reparlé ici.
En Googlant un peu, tu devrais trouver.

Pour rappel, qq causes possibles:

- fermeture par end au lien de unload
- instances de classes non désallouées
- bricolage malsain du genre form_load appelé explicitement
- End forcé avec des fenêtres toujours chargées
- allocation dynamiques non cleanées
- appels d'API qui ont lancés des sous-process
- etc.

J'arrète la, mais ce ne sont la que les causes les plus évidentes.
Il y en a potentiellement des dizaines (des centaines) d'autres.

Facile à trouver dans certains cas, mais impossible sans lire le code
en tout cas.


--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
François Picalausa
On Sep 27, 12:00 pm, "Jean-marc"
wrote:
jyM wrote:
> Il reste toujours une occurence de l'exécutable en mémoire quand je
> ferme la feuille principale en cliquant sur le bouton "fermeture".
> Comment faire en sorte que l'application se retire de la mémoire ?

> Merci

Hello,

il peut y avoir des dizaines de causes, on en a parlé et reparlé ici.
En Googlant un peu, tu devrais trouver.



Hello,

Ce sujet a d'ailleurs été tant abordé qu'il fait l'objet d'une entr ée
de la FAQ :-)
"Pourquoi quand je ferme mon programme, celui-ci est encore présent
dans la liste des tâches ? Comment fermer proprement mon programme ?"
http://faq.vb.free.fr/index.php?question

Un cas particulier, mais fréquent, des instances de classes non
désallouées est l'appel à Hide sur une form (ou, de manière
équivalent, Form.Visible = False) sans réellement la décharger. Une
technique du type de celle décrite dans http://faq.vb.free.fr/index.php?q uestion2
peut, s'il s'agit de ce problème, permettre de déterminer la form en
cause.

François
Avatar
Jean-marc
François Picalausa wrote:
On Sep 27, 12:00 pm, "Jean-marc"
wrote:
jyM wrote:
Il reste toujours une occurence de l'exécutable en mémoire quand je
ferme la feuille principale en cliquant sur le bouton "fermeture".
Comment faire en sorte que l'application se retire de la mémoire ?



Merci



Hello,

il peut y avoir des dizaines de causes, on en a parlé et reparlé ici.
En Googlant un peu, tu devrais trouver.



Hello,

Ce sujet a d'ailleurs été tant abordé qu'il fait l'objet d'une entrée
de la FAQ :-)



Loll! Honte sur moi qui n'ai même pas été voir, même si après coup ça
me disait effectivement qq chose!


--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;