OVH Cloud OVH Cloud

problème de mémoire

1 réponse
Avatar
Driss HANIB
Bonjour à tous

voila, lors de la conception et l'exécution d'un programme professionnel que
je suis en train de créer..
j'ai parfois un message d'erreur m'indiquent que je n'ai pas assez de
mémoire :

pour définir mon UC : W98 avec 783 Mo RAM (chiffre bizarre qui en fait m'est
renvoyé malgré 1 Go en 2 barrettes)
Mon prog fait appel, lors de ce bug à une DLL active X (print preview) qui
en fait affiche une feuille avec un picture box, quelques controles.. dans
laquelle sont créées les différentes pages de mon document : chaque page est
créée dans ce picture box, puis sauvegardé dans un fichier bmp sur le
disque. ces fichiers sont rapellés lorsque je veux consulter une page ou une
autre.

Ma DLL n'est pas compilée lorsqu'elle est appelée, car je devais la mettre
au point.

En fait elle est appelée dans le cas suivant.
Dans mon prg principal, j'ai une feuille ou je saisie, enregistre ou
rappelle des données.
cette feuille contnient de nombreux controles (pas loin du maxi).
Pour la visualisation ou impression du document généré, j'appelle une autre
feuille assez "légère" en controles dans laquelle je définis la destination
(impression/ viuslaisation/ PDF) puis c'est cette feuille qui appelle la DLL
et "contruit" le preview..

Comme vous le voyez, je suis en W98 et je voudrai avoir un "aspect" XP et
j'utilise donc un bouton spécial un OCX "Chameleon button" qui peut afficher
plusieurs aspects..
Sur la feuille de départ j'ai de nombreux boutons de ce type.
Ces boutons contiennent des icones

Je "pressents" le problème parfois car ces boutons , au lieu d'afficher
l'icone , n'affichent qu'un carré noir !

ce problème arrive lorsque j'ai plusieurs programmes ouvert en même temps
car je dois consulter des fichiers PDF.
Il arrive complètement lorsque je fais appel à la DLL pour construire mon
preview : il m'indique qu'il n'a plus assez de mémoire..
Arrive plus souvent lorsqu'un bug m'a obligé à arrêter l'exécution, en
cours..
Pourtant, en regardant la mémoire disponible avant exécution (TuneUp) j'ai
400 Mo de libre..

Comment diminuer ce risque, qui m'oblige parfois à quitter complètement VB
pour retrouver la mémoire ;o))
Dois je revenir simplement à des boutons classiques VB
Pour info également le controle Chaméléon pèse 80 ko
Comment voir ou se trouve cette fuite ?

merci pour vos pistes

Driss

1 réponse

Avatar
jean-marc.n
Driss HANIB a écrit :
Bonjour à tous

voila, lors de la conception et l'exécution d'un programme professionne l que
je suis en train de créer..
j'ai parfois un message d'erreur m'indiquent que je n'ai pas assez de
mémoire :

pour définir mon UC : W98 avec 783 Mo RAM (chiffre bizarre qui en fait m'est
renvoyé malgré 1 Go en 2 barrettes)
Mon prog fait appel, lors de ce bug à une DLL active X (print preview) qui
en fait affiche une feuille avec un picture box, quelques controles.. dans
laquelle sont créées les différentes pages de mon document : chaque page est
créée dans ce picture box, puis sauvegardé dans un fichier bmp sur le
disque. ces fichiers sont rapellés lorsque je veux consulter une page o u une
autre.

Ma DLL n'est pas compilée lorsqu'elle est appelée, car je devais la m ettre
au point.

En fait elle est appelée dans le cas suivant.
Dans mon prg principal, j'ai une feuille ou je saisie, enregistre ou
rappelle des données.
cette feuille contnient de nombreux controles (pas loin du maxi).
Pour la visualisation ou impression du document généré, j'appelle u ne autre
feuille assez "légère" en controles dans laquelle je définis la des tination
(impression/ viuslaisation/ PDF) puis c'est cette feuille qui appelle la DLL
et "contruit" le preview..

Comme vous le voyez, je suis en W98 et je voudrai avoir un "aspect" XP et
j'utilise donc un bouton spécial un OCX "Chameleon button" qui peut aff icher
plusieurs aspects..
Sur la feuille de départ j'ai de nombreux boutons de ce type.
Ces boutons contiennent des icones

Je "pressents" le problème parfois car ces boutons , au lieu d'afficher
l'icone , n'affichent qu'un carré noir !

ce problème arrive lorsque j'ai plusieurs programmes ouvert en même t emps
car je dois consulter des fichiers PDF.
Il arrive complètement lorsque je fais appel à la DLL pour construire mon
preview : il m'indique qu'il n'a plus assez de mémoire..



Hello Driss,

au moins un utilisateur a signalé avoir un problème avec ce
composant, et il semble bien que c'était effectivement un memory leak
en plus d'une consommation anormale de resources.

Il est possible que cet utilisateur ait été sous Win98, il ne le
précise pas:
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId7471 &lngWId=1


Don, peut être est-ce une piste? Peut être peux tu essayer ton ocx
dans un programme autonome, pour vérifier que ce n'est pas lui le
coupable?

espérant que ça t'aide,

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