souris et crash application
souris et crash application
Je suis sur la version 5.42 LTS en 32 bits sous Windows 7
J'ai une application qui tourne en fenetré. Si je passe ma souris windows par dessus l'application, mon curseur devient le curseur 'en traitement'
si je clique une fois DANS ma fenetre, l'application plante totalement comme si le click bloquait le 'repeat' ...
Vous avez déjà constaté cela ?
J'ai une application qui tourne en fenetré. Si je passe ma souris windows par dessus l'application, mon curseur devient le curseur 'en traitement'
si je clique une fois DANS ma fenetre, l'application plante totalement comme si le click bloquait le 'repeat' ...
Vous avez déjà constaté cela ?
Re: souris et crash application
Tu peux surement entrainer ce genre de réaction avec une boucle mal foutue qui ne laisse pas souffler le proce..
Si tu utilises un waitwindowsevent(), essaye déjà de mettre waitwindowsevent(20) pour voir si ça change quelque chose.
Sans code on ne pourra pas t'aider plus que ça.
Si tu utilises un waitwindowsevent(), essaye déjà de mettre waitwindowsevent(20) pour voir si ça change quelque chose.
Sans code on ne pourra pas t'aider plus que ça.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: souris et crash application
Si l'application est exécutée dans l'IDE avec le debogueur activé tu devais avoir un message d'erreur au moment du crash.
Re: souris et crash application
je l'execute bien depuis l'IDE avec debogueur activé mais pas de message sauf
[14:12:57] Waiting for executable to start...
[14:12:57] Executable type: Windows - x86 (32bit, Unicode)
[14:12:57] Executable started.
[14:13:38] The debugged executable quit unexpectedly.
Je n'utilise pas non plus waitwindowsevent(). C'est juste un screen avec une boucle qui affiche un starfield.
Je pense effectivement plus à une boucle mal fichue, je vais chercher un peu avant de poser le code ici. En tout cas cela veut dire que techniquement ca ne devrait pas planter
[14:12:57] Waiting for executable to start...
[14:12:57] Executable type: Windows - x86 (32bit, Unicode)
[14:12:57] Executable started.
[14:13:38] The debugged executable quit unexpectedly.
Je n'utilise pas non plus waitwindowsevent(). C'est juste un screen avec une boucle qui affiche un starfield.
Je pense effectivement plus à une boucle mal fichue, je vais chercher un peu avant de poser le code ici. En tout cas cela veut dire que techniquement ca ne devrait pas planter

Re: souris et crash application
- Place un point d'arrêt (F9) au début ou à l'endroit le plus suspect.
- Lance le programme (F5)
- Dès qu'il s'arrête fait le avancer pas à pas (F8)
Regarde en même temps la fenêtre de debug « Voir les variables »
Ajoute des lignes Debug.
Pour tout ce qui est créé dynamiquement par le programme, précède par un contrôle d'existance avec les fonctions Is...
Ex: If IsImage(#...) etc

- Lance le programme (F5)
- Dès qu'il s'arrête fait le avancer pas à pas (F8)
Regarde en même temps la fenêtre de debug « Voir les variables »
Ajoute des lignes Debug.
Pour tout ce qui est créé dynamiquement par le programme, précède par un contrôle d'existance avec les fonctions Is...
Ex: If IsImage(#...) etc

Re: souris et crash application
Bon, rien à faire
Voici le code
Ca ouvre une fenetre, si je passe ma souris sur la fenetre, j'ai le pointeur qui tourne
Si je clique plusieurs fois (genre 20) de suite dans la fenetre sans bouger => crash
Autre chose, si je mets FS à 1 pour passer en fullscreen, cette fois ci ca plante sur If StartDrawing(ScreenOutput())
[14:54:17] Waiting for executable to start...
[14:54:17] Executable type: Windows - x86 (32bit, Unicode)
[14:54:17] Executable started.
[14:54:18] [ERROR] debug.pb (Line: 60)
[14:54:18] [ERROR] Invalid memory access. (read error at address 0)
Le message du debugeur indique comme si il n'arrivait pas à ouvrir un fullscreen en 32 bits en 640 pa 480 (alors qu'en 800 par 600 ca marche ...)
Je veux bien croire que cette résolution est hasbeen mais quand même, un pilote refuserait d'ouvrir un 640 par 480 en 32 bits ?
Voici le code
Ca ouvre une fenetre, si je passe ma souris sur la fenetre, j'ai le pointeur qui tourne
Si je clique plusieurs fois (genre 20) de suite dans la fenetre sans bouger => crash
Code : Tout sélectionner
If InitSprite()=0:MessageRequester("Oops!","Video could not be initialized, quitting!"):End:EndIf
If InitKeyboard()=0:MessageRequester("Oops!","Keyboard could not be initialized, quitting!"):End:EndIf
#scrx=640 ; résolution x de l'écran
#scry=480 ; résolution y de l'écran
#numstars=128 ; nombre d'étoiles par plan
#starplan=3 ; nombre de plans
Structure StarVars
star_x.l
star_y.l
star_speed.F
star_colour.l
EndStructure
Global Dim Stars.StarVars(#starplan,#numstars)
If FS=0
OpenWindow(1,0,0,#scrx,#scry,"",#PB_Window_ScreenCentered|#PB_Window_WindowCentered)
OpenWindowedScreen(WindowID(1),0,0,#scrx,#scry)
Else
OpenScreen(#scrx,#scry,32,"",#PB_Screen_WaitSynchronization,60)
EndIf
Procedure _2DStarfield()
For S=1 To #starplan
For F=0 To #numstars-1
Stars(S,F)\star_x=Random(#scrx)
Stars(S,F)\star_y=Random(480,0)
Next F
Next S
For F=0 To #numstars-1
Stars(1,F)\star_speed=3 : Stars(1,F)\star_colour=RGB(64,64,64)
Stars(2,F)\star_speed=4 : Stars(2,F)\star_colour=RGB(128,128,128)
Stars(3,F)\star_speed=5 : Stars(3,F)\star_colour=RGB(255,255,255)
Next F
EndProcedure
Procedure bouge2DStarfield()
For S=1 To #starplan
For F=0 To #numstars-1
Box(Stars(S,F)\star_x,Stars(S,F)\star_y,1,1,Stars(S,F)\star_colour)
Stars(S,F)\star_x-Stars(S,F)\star_speed
If Stars(S,F)\star_x<=0:Stars(S,F)\star_x=#scrx:EndIf
Next F
Next S
EndProcedure
_2DStarfield() ; creation du starfield
Repeat
ExamineKeyboard()
ClearScreen(RGB(0,0,0))
If StartDrawing(ScreenOutput())
bouge2DStarfield()
StopDrawing()
EndIf
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
[14:54:17] Waiting for executable to start...
[14:54:17] Executable type: Windows - x86 (32bit, Unicode)
[14:54:17] Executable started.
[14:54:18] [ERROR] debug.pb (Line: 60)
[14:54:18] [ERROR] Invalid memory access. (read error at address 0)
Le message du debugeur indique comme si il n'arrivait pas à ouvrir un fullscreen en 32 bits en 640 pa 480 (alors qu'en 800 par 600 ca marche ...)
Je veux bien croire que cette résolution est hasbeen mais quand même, un pilote refuserait d'ouvrir un 640 par 480 en 32 bits ?
Re: souris et crash application
Tu as oublié d'initialiser la souris : InitMouse()
puis de l'examiner dans ta boucle : examinemouse()
puis de l'examiner dans ta boucle : examinemouse()
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: souris et crash application
Il faut penser à vider la pile d’événement de la fenêtre.
Code : Tout sélectionner
If InitSprite()=0:MessageRequester("Oops!","Video could not be initialized, quitting!"):End:EndIf
If InitKeyboard()=0:MessageRequester("Oops!","Keyboard could not be initialized, quitting!"):End:EndIf
#scrx=640 ; résolution x de l'écran
#scry=480 ; résolution y de l'écran
#numstars=128 ; nombre d'étoiles par plan
#starplan=3 ; nombre de plans
Structure StarVars
star_x.l
star_y.l
star_speed.F
star_colour.l
EndStructure
Global Dim Stars.StarVars(#starplan,#numstars)
FS = 0
If FS=0
OpenWindow(1,0,0,#scrx,#scry,"",#PB_Window_ScreenCentered|#PB_Window_WindowCentered)
OpenWindowedScreen(WindowID(1),0,0,#scrx,#scry)
Else
OpenScreen(#scrx,#scry,32,"",#PB_Screen_WaitSynchronization,60)
EndIf
Procedure _2DStarfield()
For S=1 To #starplan
For F=0 To #numstars-1
Stars(S,F)\star_x=Random(#scrx)
Stars(S,F)\star_y=Random(480,0)
Next F
Next S
For F=0 To #numstars-1
Stars(1,F)\star_speed=3 : Stars(1,F)\star_colour=RGB(64,64,64)
Stars(2,F)\star_speed=4 : Stars(2,F)\star_colour=RGB(128,128,128)
Stars(3,F)\star_speed=5 : Stars(3,F)\star_colour=RGB(255,255,255)
Next F
EndProcedure
Procedure bouge2DStarfield()
For S=1 To #starplan
For F=0 To #numstars-1
Box(Stars(S,F)\star_x,Stars(S,F)\star_y,1,1,Stars(S,F)\star_colour)
Stars(S,F)\star_x-Stars(S,F)\star_speed
If Stars(S,F)\star_x<=0:Stars(S,F)\star_x=#scrx:EndIf
Next F
Next S
EndProcedure
_2DStarfield() ; creation du starfield
Repeat
If FS = 0
;Vider la pile d'évenementy de la fenetre
Repeat ;Evenement window
Event = WindowEvent()
Select Event
Case #PB_Event_CloseWindow
End
EndSelect
Until Event=0
;Fin du vidage
EndIf
ExamineKeyboard()
ClearScreen(RGB(0,0,0))
If StartDrawing(ScreenOutput())
bouge2DStarfield()
StopDrawing()
EndIf
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: souris et crash application
Code précédent modifie si FullScreen 

Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: souris et crash application
Super !! Merci Falsam 
Au passage, un ExamineMouse() fait disparaitre le pointer. Normal ? PErso je veux qu'il reste et juste l'utiliser pour vérifier si y a un press button left
Autre chose, si j'utilise la routine musicplay, le fait de cliquer sur la fenetre bloque l'execution de tout SAUF de la musique, là aussi normal ?

Au passage, un ExamineMouse() fait disparaitre le pointer. Normal ? PErso je veux qu'il reste et juste l'utiliser pour vérifier si y a un press button left
Autre chose, si j'utilise la routine musicplay, le fait de cliquer sur la fenetre bloque l'execution de tout SAUF de la musique, là aussi normal ?
Re: souris et crash application
Du moment ou tu veux utiliser ta souris est sur un screen il te faut un curseur (sprite) et donc surveiller cette souris.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: souris et crash application
Oui. Remplace ton pointeur par un sprite. (Grillé par Ar-s)Uhuru a écrit :un ExamineMouse() fait disparaitre le pointer. Normal ?
Utilise plutôt la library sound pour les jeux.Uhuru a écrit :si j'utilise la routine musicplay,

Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: souris et crash application
Merci beaucoup pour ton aide depuis le début du sujetAr-S a écrit :Du moment ou tu veux utiliser ta souris est sur un screen il te faut un curseur (sprite) et donc surveiller cette souris.

Re: souris et crash application
Aheum, disons que je veux plus jouer un XM, me semblait que la lib était sur music et pas sur sound non ?falsam a écrit :Oui. Remplace ton pointeur par un sprite. (Grillé par Ar-s)Uhuru a écrit :un ExamineMouse() fait disparaitre le pointer. Normal ?Utilise plutôt la library sound pour les jeux.Uhuru a écrit :si j'utilise la routine musicplay,
http://www.purebasic.com/french/documen ... index.html
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: souris et crash application
Tu as raison. je ne savais pas que tu souhaitais jouer des mods.Uhuru a écrit :Aheum, disons que je veux plus jouer un XM, me semblait que la lib était sur music et pas sur sound non ?
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%