[WM11] cherche piste pour contourner un pb de fuite mémoire

Le
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þnEnCours()

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úux

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))

sNom=Startup.IMG_RSSI..NomComplet+sNom

dCopieImage(sNom,fen+".IMG_RSSI")

{fen+".IMG_RSSI",indChamp}..Visible=Vrai
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Vbig
Le #14546731
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


patrice
Le #14546711
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" 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




Publicité
Poster une réponse
Anonyme