Erreur GDI+ N° "-2147467259"

cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 - 10 avril 2008 à 17:40
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 - 11 avril 2008 à 15:28
Salut, voilà j'ai un petit problème enfinun gros ça dépend comment que je pourrait le résoudre surtout. :)

J'ai cette ligne de code :

private
Icon getIco(
icoNumber numberInList){

return
Icon.FromHandle(
new System.Drawing.
Bitmap(iconeList.Images[(
int)numberInList]).GetHicon());}

Elle retourne une une icône à partir d'un contrôle ImageList, or à un moment t que je ne peux déterminé car c'est aléatoire, le prog plante sur cette ligne en me disant erreur générique de GDI+ : "-2147467259"

J'ai regarder un peu partout mais je ne vois pas comment résoudre ce problème.

Quelqu'un aurait t'il une idée d'où viens le pb ? j'ai réussit à déterminer que cela viens du
"new ...Bitmap....GetHicon()", car en enlevant le getHicon dans l'espion express l'image existe, alors que lorsque je débug avec le GetHicon ça me met le même message d'erreur.

Merci
Chris...
Web : Firstruner

9 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
11 avril 2008 à 09:36
Bonjour,
Le plantage se fait-il tjrs sur le même fichier?
Par exemple, une image avec extension .gif ?

<hr />
-My Blog-
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
11 avril 2008 à 10:04
Salut,

J'ai ajouter le contrôle "ImageList" à la WinForm, puis avec les outils de la fenêtre propriétés j'ai ajouter les images provenant de fichier icônes (fichier ICO créer avec VS).

Donc oui tjs sur les mêmes Item de mon ImageList parfois le 1, parfois le 3, etc...

Chris...
Web : Firstruner
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
11 avril 2008 à 10:19
Je viens de faire qqe testes chez moi, ça marche sans soucis.
Sans pouvoir reproduire le problème, je ne sais pas trop comment t'aider...

Lorsque l'erreur se produit, il faudrait regarder sur quel Bitmap cela c'est produit et inspecter les propriétés de ce bitmap pour voir s'il n'a pas une particularité.
Pas d'autres idées pour l'instant...

<hr />
-My Blog-
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
11 avril 2008 à 10:24
Merci bidou,

Je suis également en pleine phase de test pour voir si le temps à 1 ou 2 sec près avant plantage est régulier, j'ai également tester les 7 images de mon ImageList et pour le moment aucun problème.

Ces icônes doivent mettre régulièrement à jour la tray icône, peut-être cela viens t'il de l'écran de veille... car quand la dernière fois je suis revenu sur le pc l'écran de veille était affiché, pour les autres fois je ne me souviens pas :) (écran de veille : Blank.scr)

Chris...
Web : Firstruner
0

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

Posez votre question
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
11 avril 2008 à 11:32
Je re,

Alors j'ai fini par déterminer un premier point ! Le moment du plantage se fait toutjours après 27min et 36sec. à ce moment là plus aucune image de l'imagelist n'est disponible elle me retourne toutes la même erreur. Pas d'idée ??? Est-ce que ma ligne appeler très souvent peux générer une surcharge de Handles ? est-ce que le new placer ainsi est bien ou dois-je plutôt instancier l'image Bitmap et ensuite appeler le Dispose voir même forcer le garbage collector à vider les trucs en trop ?

Cela pourrait venir de ça ?

Chris...
Web : Firstruner
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
11 avril 2008 à 13:05
Salut, apparemment tu dois utiliser DestroyIcon.
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
11 avril 2008 à 13:29
Merci, j'ai été voir cette fameuse fonction, mais par contre, hmm comment dire à quel moment je dois l'insérer selon ma fonction suivante ? (désoler pour ma bétisité) Car ça plante au niveau du GetHicon et faut bien que je récupère l'icône avant de la détruire.

private
Icon getIco(
icoNumber numberInList){

try{

Bitmap nIcon =
new System.Drawing.
Bitmap(iconeList.Images[(
int)numberInList]);

return
Icon.FromHandle(nIcon.GetHicon());}

catch

{t2 = System.

DateTime.Now;

return
null;}

}

Chris...
Web : Firstruner
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
11 avril 2008 à 14:57
Pas dans cette fontion, mais une fois que tu n'as plus besoin de l'icone. Ca ne suffit pas d'appeler Dispose sur la classe Icon.
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
11 avril 2008 à 15:28
Merci pour l'info très utile ;)

J'ai finalement revus toute la partie de code qui appelais cette fonction, et j'en suis arrivé à diviser par +60 son appels en ne l'appeleant que lorsque cela est nécessaire.

désormais je continu ma phase de test en espérant que tout va tenir +48h :)



Chris...


Web :
Firstruner
0
Rejoignez-nous