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

  FORUM HardWare.fr
  Programmation
  API Win32

  [API] utilisation bouton fait Segfault le programme

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[API] utilisation bouton fait Segfault le programme

n°2158615
norky77
Posté le 29-09-2012 à 21:10:11  profilanswer
 

Bonsoir les gens !
 
Alors je vous explique : j'ai une petite fenêtre en api, et j'ai un bouton qui lance l'exécution de tout un code assez long.
 
J'appuie une fois, j'attend que le long code se termine, et tout ce déroule bien. Seulement si pendant l'éxécution de ce long code j'appuie très vite en continue sur le bouton, le programme ne fonctionne plus ><, il plante.
 
Et j'essaye de comprendre pourquoi.  
J'ai essayé de stopper les messages envoyés à la procédure de fenêtre durant l'exécution du long code mais ca n'a rien fait.
J'ai aussi essayé de stopper l'action du bouton, genre lorsque le long code est en cours d'éxecution et que t'appuies sur le bouton rien ne ce passe. Mais ca plante toujours ><
 
Du coup je comprend pas vraiment comment cela fonctionne. Est ce que lorsque j'appuie sur le bouton, le code saute à la partie du code "bouton activé" ?
Si quelqu'un pouvait m'éclairer ce serait sympa  :)  
 
Merci.

mood
Publicité
Posté le 29-09-2012 à 21:10:11  profilanswer
 

n°2158617
norky77
Posté le 29-09-2012 à 22:55:17  profilanswer
 

Quand je fais du debug il m'affiche ca "An unhandled win32 exception occurred".
Aucune idée de ce que ca veut dire ><

n°2158699
breizhbugs
Posté le 01-10-2012 à 11:45:38  profilanswer
 

Les exécutions longue vont bloquer le programme et la fenêtre de l'application ne vas plus répondre.
Quand le traitement à effectuer est long, il faut le faire dans un thread a part. (Et éventuellement protéger la création du thread de façon a ce qu'elle soit unique pour empêcher de lancer plusieurs fois le traitement (via appuie successif rapide sur le bouton) avant que le traitement ne soit fini(une technique peut être de désactiver le bouton le temps du traitement).


---------------
Seul Google le sait...
n°2158717
norky77
Posté le 01-10-2012 à 15:31:06  profilanswer
 

J'arrive à désactivez le bouton au début avec EnableWindow.
 
Mais même comme ca, si on appuie sur le bouton alors qu'il est désactivé, bien sûr il ce passe rien mais les messages sont quand même arrivés dans la file de message.
 
Du coup dès que je réactive le bouton à la fin du traitement, il se remet à faire les actions à cause des clics effectués ><.

n°2158988
norky77
Posté le 03-10-2012 à 15:21:48  profilanswer
 

C'est bon, j'ai contourné le problème en mettant tout le long code dans un thread comme tu me l'as conseillé, merci ^^.
 
Ca fonctionne nickel.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  API Win32

  [API] utilisation bouton fait Segfault le programme

 

Sujets relatifs
AS3 Simple swap de CLip/BoutonAPI win 32 plus rapide que bibliothèque tierces ?
Visual C++ 2010 - Lancer un batch dos depuis un boutonproblème d'utilisation de variable shell dans un script
Problème de mise en place d'image en bouton submitutilisation cells.value
Programme C++ / Fortran sous Visual 6 - Convention d'appelCommunes de France 2012 : L'API intemporel !
Est il possible de modifier un programme pour mettre a jour le contenuExecuter un programme toute les 5 minutes
Plus de sujets relatifs à : [API] utilisation bouton fait Segfault le programme


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