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

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

2 réponses
Avatar
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))

sNom=Startup.IMG_RSSI..NomComplet+sNom

dCopieImage(sNom,fen+".IMG_RSSI")

{fen+".IMG_RSSI",indChamp}..Visible=Vrai

2 réponses

Avatar
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


Avatar
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