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 :

erreur dans l'ouvertur d'un fichier à partir du disque dur


Sujet :

GTK+ avec C & C++

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 22
    Points : 15
    Points
    15
    Par défaut erreur dans l'ouvertur d'un fichier à partir du disque dur
    salut tous le monde

    j'essaye de compiler un petit programme qui ouvre un fichiers dans le disque dur en utilisant gtk_file_chosser_dialog_new. et ensuite affiche le repertoire du fichiers selectionné dans une boite de message.
    quand je clique sur le fichier la boite de dialogue affiche le repertoire mais la fenetre pricipale coince . et la console m'affiche l'erreur suivante :
    (gtk test.exe:1056): Gtk-WARNING **: file_system_win32=010AA020 still has handle=0108E078 at finalization which is NOT CANCELLED!

    puis-je avoir une indication sur l'endroit de l'erreur.
    et merci les gars


    et voila mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    #include<stdlib.h>
    #include<gtk/gtk.h>
     
    void onajout(GtkWidget *butt,gpointer contextid);
     
    int main(int argc,char **argv)
    {
            GtkWidget *paboutbutt=NULL;
            GtkWidget *pwindow=NULL;
     
        /* initialisation du bibliotheque GTK+ */
        gtk_init(&argc,&argv);
        /* Creation de la fenetre "pwindow"*/
        pwindow=gtk_window_new(GTK_WINDOW_TOPLEVEL);
        gtk_window_set_title(GTK_WINDOW(pwindow),"fenetre exemple 1");
        gtk_window_set_default_size(GTK_WINDOW(pwindow),320,200);
     
        g_signal_connect(G_OBJECT(pwindow),"destroy",G_CALLBACK(gtk_main_quit),NULL);
     
       paboutbutt=gtk_button_new_with_label("Explorer");
        gtk_container_add(GTK_CONTAINER(pwindow),paboutbutt);
        g_signal_connect(G_OBJECT(paboutbutt),"clicked",G_CALLBACK(onajout),NULL);
     
        gtk_widget_show_all(pwindow);
        gtk_main();
        return EXIT_SUCCESS;
    }
    void onajout(GtkWidget *butt,gpointer data)
    {
        GtkWidget *pfileex;
        GtkWidget *parent;
        GtkWidget * dialog;
        gchar *chemin;
        parent=gtk_widget_get_toplevel(butt);
     
        pfileex=gtk_file_chooser_dialog_new("Ouvrir...",GTK_WINDOW(parent),GTK_FILE_CHOOSER_ACTION_OPEN,GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL,GTK_STOCK_OPEN,GTK_RESPONSE_OK,NULL);
    	gtk_window_set_modal(GTK_WINDOW(pfileex),TRUE);
        switch (gtk_dialog_run(GTK_DIALOG(pfileex)))
        {
            case GTK_RESPONSE_OK:
    			chemin=gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(pfileex));
    			dialog=gtk_message_dialog_new(GTK_WINDOW(pfileex),GTK_DIALOG_MODAL,GTK_MESSAGE_INFO,GTK_BUTTONS_OK,"Le chemin est \n %s",chemin);
    			gtk_dialog_run(GTK_DIALOG(dialog));
    			gtk_widget_destroy(dialog);
    			g_free(chemin);
            break;
    		default:
            break;
     
        }
    	gtk_widget_destroy(pfileex);
     
     
    }

  2. #2
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Bonjour,

    Le code fonctionne très bien sous Linux.

    Au vu du message il semblerai que le fichier soit verrouillé par le système (peut être ouvert dans un autre programme).

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 22
    Points : 15
    Points
    15
    Par défaut
    merci gege2061 ,oui le code fonctionne sous linux mes sous windows non et l erreur qui s'affiche sur la console je l'ai deja cité .merci de l'essayer sous windows .vraiment j'ai besoin de ce exe. et oui n'importe fichier que je selectionne le message s'affiche dans la console et la fenetre principale conce. et je suis sur que les fichiers que je selectionne ne sont pas ouvert par un autre programme tu peut essayer et voir sous windows merci pour votre reponse gege2061.

  4. #4
    Membre confirmé
    Profil pro
    Retraité
    Inscrit en
    Novembre 2009
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2009
    Messages : 330
    Points : 607
    Points
    607
    Par défaut
    Bonjour,
    J'ai essayé ton code sous MSWindows XP avec msys-1.0 et et mingw en compilant avec la Makefile suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    PROGRAM = essai.exe
    # C compiler
    CC=gcc
    # Loader
    LD=$(CC)
     
    .SUFFIXES : .c $(O)
     
    # C flags
    CFLAGS0=-g   -fno-common -Wall -Wpointer-arith -Wnested-externs
    FLAGS_GTK =   `pkg-config --cflags  gtk+-2.0`
    CFLAGS = $(CFLAGS0) $(FLAGS_GTK)
     
    LIBS_GTK = `pkg-config --libs gtk+-2.0` 
    LIBS= $(LIBS_GTK)
     
    OBJS	      = gtk_essai.o
     
    SRCS	      = gtk_essai.c
     
    all:		$(PROGRAM)
     
     
    $(PROGRAM):     $(OBJS)
    		@echo "Linking $(PROGRAM) ..."
    		$(LD)  $(OBJS) $(LIBS) -o $(PROGRAM)
     
    		@echo "done"
    et tout à l'air normal.

    PS: Attention, make ne marche pas si les tabulations sont changées en blancs ou si il y a des blancs à la fin des lignes;
    GraceGTK: a plotting tool at https://sourceforge.net/projects/gracegtk

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/03/2009, 10h54
  2. erreur sur l'ouverture d'un fichier .mdb
    Par valoum dans le forum Access
    Réponses: 2
    Dernier message: 17/04/2006, 22h36
  3. Réponses: 6
    Dernier message: 02/06/2005, 12h44
  4. Réponses: 5
    Dernier message: 27/07/2004, 17h04

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