[WM11] cherche piste pour contourner un pb de fuite mémoire
2 réponses
patrice
Bonjour
J'ai une grosse fuite mémoire avec WM11.
J'ai un timer qui fait plein de chose (affichage de l'heure, + différent
états)
Je lui ai ajouter aussi une fonction AffRSSI qui affiche des petites barres
pour représenter l'état du signal WIFI.
Depuis que j'ai fait ca, j'ai une fuite régulière de mémoire, et des que la
mémoire devient trop juste ca plante au bout d'une journée.
Si je met en commentaire ce dessin, ca ne plante plus
Je cherche donc soit à corriger (mais je vois pas ou), soit à contourner.
Voila mon algo:
Mon RSSI vaut de 0 à 12,
je prédessine les 13 états possibles dans 13 champs images :
startup.IMG_RSSI0 à startup.IMG_RSSI12
dans ma fonction, si la fenetre contient un champ IMG_RSSI, je lui affiche
la bitmap correspondante
Procedure AffRSSI()
fen est une chaîne=FenEnCours()
QUAND EXCEPTION
RETOUR
FIN
SI PAS ChampExiste(fen+".IMG_RSSI") ALORS RETOUR
nBarre,nBarreTot,nColor,nDB sont des entier
SI PAS DLLGetSignalStrenght(nDB,nBarre,nBarreTot,nColor) ALORS
{fen+".IMG_RSSI",indChamp}..Visible=Faux
RETOUR
FIN
r est un réel
r=nBarre
r=r/nBarreTot
r=r*12
sNom est une chaîne=NumériqueVersChaîne(Arrondi(r))
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Vbig
Après mûre réflexion, patrice a écrit : [...]
Voila mon algo: Mon RSSI vaut de 0 à 12, je prédessine les 13 états possibles dans 13 champs images : startup.IMG_RSSI0 à startup.IMG_RSSI12 dans ma fonction, si la fenetre contient un champ IMG_RSSI, je lui affiche la bitmap correspondante
[...]
SI PAS DLLGetSignalStrenght(nDB,nBarre,nBarreTot,nColor) ALORS
je connais pas, à tester si c'est ici la fuite mémoire
[...]
sNom est une chaîne=NumériqueVersChaîne(Arrondi(r)) sNom=Startup.IMG_RSSI..NomComplet+sNom
Plutot que de copier l'image (qui doit bien utiliser qlq chose en mémoire) tester : {fen+".IMG_RSSI",indChamp}..image={"startup.IMG_RSSI"+r,indchamp}..image // dCopieImage(sNom,fen+".IMG_RSSI")
{fen+".IMG_RSSI",indChamp}..Visible=Vrai
Après mûre réflexion, patrice a écrit :
[...]
Voila mon algo:
Mon RSSI vaut de 0 à 12,
je prédessine les 13 états possibles dans 13 champs images :
startup.IMG_RSSI0 à startup.IMG_RSSI12
dans ma fonction, si la fenetre contient un champ IMG_RSSI, je lui affiche
la bitmap correspondante
[...]
SI PAS DLLGetSignalStrenght(nDB,nBarre,nBarreTot,nColor) ALORS
je connais pas, à tester si c'est ici la fuite mémoire
[...]
sNom est une chaîne=NumériqueVersChaîne(Arrondi(r))
sNom=Startup.IMG_RSSI..NomComplet+sNom
Plutot que de copier l'image (qui doit bien utiliser qlq chose en
mémoire) tester :
{fen+".IMG_RSSI",indChamp}..image={"startup.IMG_RSSI"+r,indchamp}..image
// dCopieImage(sNom,fen+".IMG_RSSI")
Voila mon algo: Mon RSSI vaut de 0 à 12, je prédessine les 13 états possibles dans 13 champs images : startup.IMG_RSSI0 à startup.IMG_RSSI12 dans ma fonction, si la fenetre contient un champ IMG_RSSI, je lui affiche la bitmap correspondante
[...]
SI PAS DLLGetSignalStrenght(nDB,nBarre,nBarreTot,nColor) ALORS
je connais pas, à tester si c'est ici la fuite mémoire
[...]
sNom est une chaîne=NumériqueVersChaîne(Arrondi(r)) sNom=Startup.IMG_RSSI..NomComplet+sNom
Plutot que de copier l'image (qui doit bien utiliser qlq chose en mémoire) tester : {fen+".IMG_RSSI",indChamp}..image={"startup.IMG_RSSI"+r,indchamp}..image // dCopieImage(sNom,fen+".IMG_RSSI")
{fen+".IMG_RSSI",indChamp}..Visible=Vrai
patrice
merci pour la réponse ..image ne fonctionne pas (je pense que ca ne marche qu'avec des fichiers (champ_image=c:...) mais la fuite venait bien de la dll :)
"Vbig" a écrit dans le message de news:
Après mûre réflexion, patrice a écrit : [...] > Voila mon algo: > Mon RSSI vaut de 0 à 12, > je prédessine les 13 états possibles dans 13 champs images : > startup.IMG_RSSI0 à startup.IMG_RSSI12 > dans ma fonction, si la fenetre contient un champ IMG_RSSI, je lui
affiche
> la bitmap correspondante
[...] > > SI PAS DLLGetSignalStrenght(nDB,nBarre,nBarreTot,nColor) ALORS je connais pas, à tester si c'est ici la fuite mémoire
[...] > sNom est une chaîne=NumériqueVersChaîne(Arrondi(r)) > sNom=Startup.IMG_RSSI..NomComplet+sNom
Plutot que de copier l'image (qui doit bien utiliser qlq chose en mémoire) tester : {fen+".IMG_RSSI",indChamp}..image={"startup.IMG_RSSI"+r,indchamp}..image // dCopieImage(sNom,fen+".IMG_RSSI")
> {fen+".IMG_RSSI",indChamp}..Visible=Vrai
merci pour la réponse
..image ne fonctionne pas (je pense que ca ne marche qu'avec des fichiers
(champ_image=c:...)
mais la fuite venait bien de la dll :)
"Vbig" <PtitScar@hotmail.fr> a écrit dans le message de
news:mn.2aa57d82ed7a4d1c.46199@hotmail.fr...
Après mûre réflexion, patrice a écrit :
[...]
> Voila mon algo:
> Mon RSSI vaut de 0 à 12,
> je prédessine les 13 états possibles dans 13 champs images :
> startup.IMG_RSSI0 à startup.IMG_RSSI12
> dans ma fonction, si la fenetre contient un champ IMG_RSSI, je lui
affiche
> la bitmap correspondante
[...]
>
> SI PAS DLLGetSignalStrenght(nDB,nBarre,nBarreTot,nColor) ALORS
je connais pas, à tester si c'est ici la fuite mémoire
[...]
> sNom est une chaîne=NumériqueVersChaîne(Arrondi(r))
> sNom=Startup.IMG_RSSI..NomComplet+sNom
Plutot que de copier l'image (qui doit bien utiliser qlq chose en
mémoire) tester :
{fen+".IMG_RSSI",indChamp}..image={"startup.IMG_RSSI"+r,indchamp}..image
// dCopieImage(sNom,fen+".IMG_RSSI")
merci pour la réponse ..image ne fonctionne pas (je pense que ca ne marche qu'avec des fichiers (champ_image=c:...) mais la fuite venait bien de la dll :)
"Vbig" a écrit dans le message de news:
Après mûre réflexion, patrice a écrit : [...] > Voila mon algo: > Mon RSSI vaut de 0 à 12, > je prédessine les 13 états possibles dans 13 champs images : > startup.IMG_RSSI0 à startup.IMG_RSSI12 > dans ma fonction, si la fenetre contient un champ IMG_RSSI, je lui
affiche
> la bitmap correspondante
[...] > > SI PAS DLLGetSignalStrenght(nDB,nBarre,nBarreTot,nColor) ALORS je connais pas, à tester si c'est ici la fuite mémoire
[...] > sNom est une chaîne=NumériqueVersChaîne(Arrondi(r)) > sNom=Startup.IMG_RSSI..NomComplet+sNom
Plutot que de copier l'image (qui doit bien utiliser qlq chose en mémoire) tester : {fen+".IMG_RSSI",indChamp}..image={"startup.IMG_RSSI"+r,indchamp}..image // dCopieImage(sNom,fen+".IMG_RSSI")