IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GTK+ avec C & C++ Discussion :

Programme.exe a cessé de fonctionner avec GTK+


Sujet :

GTK+ avec C & C++

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 20
    Points : 11
    Points
    11
    Par défaut Programme.exe a cessé de fonctionner avec GTK+
    Bonjour, voilà je suis nouveau et je commence tout juste la programmation d'interface graphique avec GTK+ sous code::block grace nottament aux cours et tutoriel présent sur ce site.
    Je viens vers vous parce que évidement j'ai un problème, une fois mon programme compiler, j'exécute le programme mais presque immédiatement un message d'erreur s'affiche "test.exe a cessé de fonctionner".
    Je n'arrive pas à trouver d'où vient le problème, mais je pense que cela se trouve au niveau de la création de l'arrière-plan.

    Je vous fournit mon code:


    #include <stdlib.h>
    #include <gtk/gtk.h>
    void OnDestroy(GtkWidget *pWidget, gpointer pData);
    int main(int argc,char **argv)
    {
    /* Déclaration du widget */
    GtkWidget *pWindow;
    GtkWidget *ptable;
    GtkWidget *pimage;
    GtkWidget *pbouton;

    gtk_init(&argc,&argv);
    /* Création de la fenêtre */
    pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    /* Définition de la position */
    gtk_window_set_position(GTK_WINDOW(pWindow), GTK_WIN_POS_CENTER);
    /* Définition de la taille de la fenêtre */
    gtk_window_set_default_size(GTK_WINDOW(pWindow), 1024, 768);
    /* Titre de la fenêtre */
    gtk_window_set_title(GTK_WINDOW(pWindow), "Cellules & Vésicules Analyser.");
    /* Connexion du signal "destroy" */
    g_signal_connect(G_OBJECT(pWindow), "destroy", G_CALLBACK(OnDestroy), NULL);
    /* Creation de l'arriere plan */
    pimage = gtk_image_new_from_file ("C:\\Users\\schwalm\\Documents\\Code\\image\\open2.jpg");
    gtk_table_attach_defaults (GTK_TABLE (ptable), pimage, 0, 16, 0, 10);
    /*Création des bouton*/
    pbouton=gtk_button_new();
    pimage=gtk_image_new_from_file("C:\\Users\\schwalm\\Documents\\Code\\image\\Open.png");
    gtk_container_add(GTK_CONTAINER(pbouton),pimage);
    gtk_table_attach_defaults(GTK_TABLE(ptable),pbouton,1,2,3,5);
    /* Affichage de la fenetre */
    gtk_widget_show_all(pWindow);
    /* Démarrage de la boucle événementielle */
    gtk_main();
    return EXIT_SUCCESS;
    }
    void OnDestroy(GtkWidget *pWidget, gpointer pData)
    {
    /* Arrêt de la boucle événementielle */
    gtk_main_quit();
    }


    Merci de votre aide !!!

  2. #2
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Points : 2 002
    Points
    2 002
    Par défaut
    Bonjour,

    si tu as un crash, le mieux serait que tu essaie d'abord de lancer un déboguer et voir à quelle ligne ça crashe...
    Documentation officielle GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels par l'exemple (platform-demos):
    GTK (tous langages)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Merci pour cette réponse , je n'avais pas penser au mode débeuger je vais essayer ça demain matin !! ^^

    Mais je suis presque sur que l'erreur ce trouve sois quand je charge l'image d'arrière plan ou d'icône (pimage = .... ), ou sois à la ligne juste en dessous (gtk table ....) parceque lorsque je l'ai enlève mon programme ne crache pas.

    Merci de ton aide

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Bonjour, j'ai essayer en mode deboger c'est à la ligne " gtk_table_attach_defaults (GTK_TABLE (ptable), pimage, 0, 16, 0, 10);" que ca crash

  5. #5
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Points : 2 002
    Points
    2 002
    Par défaut
    Je ne pense pas que tu as activé les warning à la compilation, sinon tu ne te demanderais pas d'où ça vient. Il faut passer l'argument -Wall au compilateur. Ainsi tu auras plus de messages t'aidant à détecter les éventuels problèmes de ton code. Dans ton cas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    /home/luis/devel/test/test-gtk2/main.c: In function ‘main’:
    /home/luis/devel/test/test-gtk2/main.c:25:29: warning: ‘ptable’ is used uninitialized in this function [-Wuninitialized]
    main.c:25 signifie "fichier main.c, ligne 25". Et le message indique clairement que tu n'as pas initialisé ton pointeur ptable avant de l'utiliser. En gros il te manque la création de ton GtkTable. Pense aussi à utiliser la balise CODE sur le forum quand tu utilises du code, elle préserve l'indentation et ajoute la coloration syntaxique.
    Documentation officielle GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels par l'exemple (platform-demos):
    GTK (tous langages)

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Merci ca marche !! j'avais oublier ces deux ligne la : "ptable=gtk_table_new(19,10,TRUE);
    gtk_container_add(GTK_CONTAINER(pWindow),GTK_WIDGET(ptable));"

Discussions similaires

  1. explorer.exe a cessé de fonctionner
    Par Sylvain245 dans le forum Windows 7
    Réponses: 10
    Dernier message: 14/01/2010, 09h49
  2. Programme.exe a cessé de fonctionner
    Par mayyyyya dans le forum C
    Réponses: 1
    Dernier message: 04/06/2009, 12h51
  3. Rave.exe a cessé de fonctionner
    Par BaldeckJ dans le forum EDI
    Réponses: 5
    Dernier message: 11/09/2008, 01h13
  4. ''explorateur exe a cessé de fonctionner ''
    Par bibiou dans le forum Windows Vista
    Réponses: 6
    Dernier message: 05/07/2008, 15h16
  5. Réponses: 5
    Dernier message: 17/02/2008, 18h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo