Runtime Error "480" Can't create autoredraw image

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 1 oct. 2009 à 09:24
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 8 mai 2012 à 19:45
Bonjour à tous.

Cela faisait longtemps.


[b]
W2K SP4
VB6 SP6
/b
Bon comme vous vous en doutez j'ai un souci.

J'ai développé des UserControl pour le boulot, et depuis peu (c'est à dire que je ne sais pas dire depuis quand j'ai l'apparition de l'erreur
480 Can't create autoredraw image semblerait il à cause de l'un de mes UserControl= > Un Panel amélioré ).

Il faut savoir que cette erreur n'arrive pas systématiquement, mais plutot après un certain temps d'utilisation (histoire de mémoire ou que sais je). mais une fois qu'elle arrive, j'ai un comportement tellement instable, que le mieux est un reboot PC... je n'ai vu cela que sur mon PC mais j'ai peur que cela finisse par arriver sur un PC client si c'est un mauvais codage des contrôles.
Bon je ne sais pas si cela peut aider mais j'ai tout de même eu un crash OS suite à une barrette de RAM défectueuse => réinstallation OS => Changement carte Graphique, mais comme j'étais aussi en train de réécrire les contrôles à cette période je ne sais pas si c'est le crash ou une mauvaise écriture)

Après quelques recherches sur le net (de plus en plus difficile de trouver de l'aide pertinente pour VB6), Il semblerait que l'erreur dit à peu près tout ce qu'il y a à savoir (c'est déjà ca).
Microsoft ajoute: Erreur est généralement provoquée par un manque de ressources (mémoire vidéo, la mémoire système, mémoire virtuelle, etc.) => Comment pister cela ?
Il ajoute: Redémarrez la station de travail. Si l'erreur se produit fréquemment, ajoutez davantage de mémoire au système ou réduire le nombre d'applications => Ca c'est pas jouable.

J'ai vu que pour palier à ce problème, il fallait éviter de mettre la propriété AutoRedraw des UserControl à True, et re peindre soit même le contrôle. Et bien si je fait cela, je me retrouve avec des comportements bizarre du panel (ex: effacement du contenu des label contenu dans le panel, ou encore scintillement des lignes du contrôle)

J'ai vu aussi que l'on pouvait se passer d'autoRedraw et passer par des API de GDI32 (sombre pour moi) comme par exemple CreateCompatibleDC

Mes contrôles ne sont pas très améliorés, c'est juste des contrôles un peu plus "jolis" que ceux proposés par défaut.

J'ai aussi regardé les sources de RenField et de violent_ken . Et lorsque l'erreur apparait avec mes controles, si je fait un test (charger beaucoup de controles) avec ceux de violent_ken, j'ai le meme problème.

Donc mes questions sont:
[list]
Avez vous déjà eu ce problème?
Pourriez vous me donner un lien utile (tutoriel ou autre)?
Y a t il des "pièges connus"?
/list

Renfield si tu passes par là HELP.


Merci de m'avoir lu et merci pour l'aide que vous pourriez m'apporter
@+: Ju£i€n
Pensez: Réponse acceptée

5 réponses

tpoinsot Messages postés 345 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 17 octobre 2014 4
1 oct. 2009 à 10:42
Bonjour,
ce qui me surprend, ce n'est pas seulement que cette erreur soit peu documentée, mais plutôt qu'il s'agisse d'une erreur VBA Excel !
Dans MSDN oct2001, il ne s'agit que d'excel 5 à 97. Pas de vb6.
Toi, tu l'obtiens en VB6, donc dans un exe, non ? Pas d'excel du tout ?
Essaie en repassant le SP6.

Les DC, c'est bien en C++, mais en vb ça n'apporte pas grand chose. Ca fait plus de code pour des performances peu différentes. C'est surtout bien quand on ne sait pas faire ce qu'on veut avec vb.
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
1 oct. 2009 à 14:30
Salut tpoinsot

Non pas d'EXCEL du tout, rien que du VB6 avec SP6 et des UserControl faits maison.

Mon PC avait quelques retard d'Update Windows, mais je n'aimerais vraiment pas que cela soit nécessaire pour les PC client (usine et donc pas de Mise à jour)

En tout cas merci d'avoir pris le temps de me lire.
Si tu as une idée je suis preneur.

Je continue à chercher...

@+: Ju£i€n
Pensez: Réponse acceptée
0
tpoinsot Messages postés 345 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 17 octobre 2014 4
2 oct. 2009 à 14:32
Bonjour,

Si tu es certain qu'il n'y avait pas d'erreur avant ta réinstallation, alors il ne doit y avoir aucun problème chez tes clients.
Cependant, il y a une forte crainte pour ta prochaine livraison.
Vérifie que tu as bien réinstallé à l'identique, y compris tes sources.
même système (SPx), ...
Je proposais de réappliquer le SP6 de VS car ça m'est déjà arrivé de ne pas tout réinstaller dans le bon ordre. Après, bonjour l'angoisse.

Trouve une procédure qui aboutit à l'erreur et reproduit la sur une autre machine pour vérifier (chez un client aussi pour te rassurer, mais sans lui bien sûr)
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
8 mai 2012 à 16:52
Bonjour, Julien

Je n'étais pas là en octobre 2009
Je "tombe" sur cette discussion en recherchant si d'autres ont également eu ce problème, ce qui est aujourd'hui mon cas

Voici où j'en suis, après plusieurs tests, faits avec le même code mais sur des interfaces différentes :
- le problème est généré par une très grande gourmandise en ressources mémoire lorsque le contrôle devant héberger l'image est de grandes dimensions

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
8 mai 2012 à 19:45
Bon.
Essais concluants : c'est bien l'insuffisance de mémoire disponible qui est le seul facteur de cet état de choses.
Il faut donc se contenter de contrôles dotés d'un hdc de dimensions moins gourmandes.

J'ai du coup une question à poser (je refais un outil paramétrable pour impression d'étiquettes et l'une de ses fonctionnalités est de permettre une visualisation avant impression) :
Quelqu'un peut-il me dire quel est le format de planche d'étiquettes le plus grand sur le marché ?
- largeur = ?
- hauteur = ?
Merci à ceux qui me donneront ce renseignement.
Ils seront d'ailleurs remerciés bien plus en découvrant, dans maintenant quelque jours, l'outil complet que je m'apprête à déposer


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Rejoignez-nous