Handle NULL

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
snobw
Messages : 26
Inscription : ven. 05/nov./2004 12:58

Handle NULL

Message par snobw »

Bonjour, j'ai un problème avec le morceau de code ci-dessous.
Au bout de ~30s l'API CreateCompatibleBitmap me renvoi un HANDLE égale à 0.
j'arrive pas à savoir, pourquoi.

Code : Tout sélectionner

Repeat
  DeleteDC_(BMPHandle)
  DeleteDC_(HCreatDC)
  HCreatDC = CreateDC_("DISPLAY", "", "", NULL)
  HCreatCompDC = CreateCompatibleDC_(HCreatDC)
  BMPHandle = CreateCompatibleBitmap_(HCreatDC, 1024, 768)
  SelectObject_(HCreatCompDC,BMPHandle)
  BitBlt_(HCreatCompDC, 0, 0, 1024, 768, HCreatDC, 0, 0, #SRCCOPY)
  DeleteDC_(HCreatCompDC)
  ReleaseDC_(BMPHandle, HCreatDC)
  Debug HCreatDC
  Debug HCreatCompDC
  Debug BMPHandle
  Sleep_(200)
ForEver
Si quelqu'un à une proposition je suis preneur.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

j'ai déjà lu un truc dans le genre sur le forum anglais.

fred avait une procedure DisplayTransparentImage() et au bout d'un certain nombre d'appels à la fonction, elle ne fonctionnait plus...

je vais essayer de te retrouver le post.
Image
snobw
Messages : 26
Inscription : ven. 05/nov./2004 12:58

Message par snobw »

voila j'ai trouvé la reponse.

Mon Handle était au final le pointeur d'un objet de l'API windows.
Donc, je le detruisais mal.
il fallait que j'utilise
DeleteObject_(BMPHandle)
à la place de DeleteDC_(BMPHandle)

Code : Tout sélectionner

  DeleteDC_(HCreatDC) 
  DeleteObject_(BMPHandle) ;detruit l'objet bitmap
  HCreatDC = CreateDC_("DISPLAY", "", "", NULL);peut etre identique
  HCreatCompDC = CreateCompatibleDC_(HCreatDC)
  BMPHandle = CreateCompatibleBitmap_(HCreatDC, Width, Height)
  SelectObject_(HCreatCompDC,BMPHandle)
  BitBlt_(HCreatCompDC, 0, 0, Width, Height, HCreatDC, left, top, #SRCCOPY)
  DeleteObject_(HCreatCompDC)
  ReleaseDC_(BMPHandle, HCreatDC)

je crée plein d'objet, en pensant les detruires après, ce qui n'était pas le cas.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

bien vu ;-)
Image
snobw
Messages : 26
Inscription : ven. 05/nov./2004 12:58

Message par snobw »

merci quand même pour l'aide!
Répondre