Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
767 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Problème avec la fonction OnTimer() sous vc++

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème avec la fonction OnTimer() sous vc++

n°1253981
Djule01
Posté le 26-11-2005 à 22:13:02  profilanswer
 

Bonjour,
 
Je réalise actuellemnent un casse-briques sous visual c++ 6.0 et j'ai un problème concernant la fonction OnTimer().
 
J'en suis au stade ou j'anime la balle dans la fenetre en la faisant rebondir sur les bord. Pour cela dans la fonction OnKeyDown:
 

Code :
  1. if(nChar==VK_SPACE)
  2.         SetTimer(1,10,NULL);


 
dans la fonction OnTimer
 

Code :
  1. RedrawWindow(pDoc->p_part->p_bal->rect);


 
C'est a dire je decide de redessiner uniquement la balle.
 
Je possede une classe CPartie, et une classe Cballe.
J'ai créé un pointeur CPartie (p_part) dans le Doc et un pointeur CBalle (p_bal) dans la classe CPartie. D'ou le pDoc->p_part->p_bal->rect2.
 
Dans la classe CBalle j'ai créer un rect de la classe CRect que j'ai instancié dans le constructeur.J'ai également créé une fonction deplacement_balle() qui m'incrémente les points de la balle défini dans le rect.SetRect(...).
 
Pour finir voila le code inscrit dans la fonction OnDraw(CDC* pDC) :
 

Code :
  1. CPen pen1(PS_NULL,5,RGB(0,221,255));
  2. pDC->SelectObject(&pen1);
  3.   CBrush brush3 (6,COULEUR_BALLE);
  4.   pDC->SelectObject(&brush3);
  5.   pDoc->p_part->p_bal->deplacement_balle();
  6.   pDC->Ellipse(pDoc->p_part->p_bal->rect2);


 
Je passe les détails des condition pour le rebondissement mon problème ne venant pas de la.
 
Bref, tout cela pour en venir a mon probleme :
 
Lorsque je lance le jeux tout fonctionne à merveille, la balle se deplace, elle rebondit, oui... mais pendant environ une trentaine de seconde, car tout a coup sans aucune raison (apparente!!) un message d'erreur apparait :
 
Je cite : L'instruction à "0x5f43dfb1" emploie l'adresse mémoire "0x00000004" la mémoire ne peut pas etre "read".
 
Arggggggggggggggg!!!!
 
Je ne vois vraiment pas d'ou peut venir le problème, je sais que le problème viens de la fonction OnTimer() mais je ne sais pas ce que j'ai mal fait. J'ai essayé de faire un KillTimer(o) puis une relance immédiate, même problème!!
 
Pouvez vous m'aider s'il vous plait;
 
J'ai aussi un autre petit probleme mais bien moins important que je posterait dans un autre message.
 
Je vous remercie de l'attention que vous avez porté a mon message.
 
 

mood
Publicité
Posté le 26-11-2005 à 22:13:02  profilanswer
 

n°1253996
olivthill
Posté le 26-11-2005 à 23:31:39  profilanswer
 

Le message ne concerne pas forcément le timer. Le timer est utilisé dans de nombreuses applications sans poblème. Le message indique qu'un pointeur ne pointe plus au bon endroit. Cela peut venir,  
 
- soit de la routine d'affichage qui déborderait de l'espace alloué, par exemple avec x = -1 et a = t[x]
 
- soit de la pile qui se remplit plus vide qu'elle ne se vide, et finit par déborder, ce qui peut être le cas si le timer est trop petit par rapport au temps que prend l'affichage. Pour en avoir le coeur net, il faudrait voir si cela plante encore en mettant un timer 10 fois plus long, et en attendant 11 fois plus longtemps.

n°1254003
Djule01
Posté le 26-11-2005 à 23:55:45  profilanswer
 

Tout d'abord merci pour ta réponse.
Je ne comprends pas tout a fait la raison que tu expose en premier choix (routine d'affichage)
Concernant ta seconde raison possible je pense que sa peut tout a fait etre la raison. Pense tu que le fait que le "pointage" soit trop "telephonné" puisse etre la raison. pDoc->p_part->p_bal->rect
 
Pense tu que si je supprime une classe intermédiaire cela puisse regler le pb? (par exemple la classe CBal)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Problème avec la fonction OnTimer() sous vc++

 

Sujets relatifs
problème avec une pile[Js] Appeller la fonction d'une autre page (iframe)
[DEBUTANT] Problème héritageProbleme QTJAVA.zip..
problème script shell en bash!probleme php
probleme height: 100%probleme de CSS entre IE6 et FF
[Résolu] Fonction Execlp avec nombre parametres variableProblème avec un soft
Plus de sujets relatifs à : Problème avec la fonction OnTimer() sous vc++


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR