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 Windows : incompréhension !


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 68
    Par défaut Erreur Windows : incompréhension !
    Excusez moi de vous déranger de si bon matin mais je viens de coder ça et ça ne marche pas[Erreur Windows] et pas d'erreur dans devc++. Si quelqu'un a une idée, je lui serai assez reconnaissant

    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
    void ajout_intitule(gpointer *data)
    {
    	MainWindow *pApp;
    	char *chaine1,*chaine2,*chaine3;
    	char c;
    	FILE *fp;
        GList *list=NULL;
     
        pApp = (MainWindow*) data;
    	/*Ouverture du fichier texte en écriture*/
    	fopen("memo.txt","r+");
    	/*Allocation mémoire des chaines de textes*/
    	chaine1=(char*)calloc(81,sizeof(char));
    	chaine2=(char*)calloc(81,sizeof(char));
    	chaine3=(char*)calloc(81,sizeof(char));
    	c=getc(fp);//pour supprimer les guillemets
    	/*tant qu'on a pas atteint la fin du fichier, on cherche les intitulés*/
    	while (c!=EOF){
                            fgets(chaine1,80,fp);
                            fgets(chaine2,80,fp);
                            fgets(chaine3,80,fp);
                            /*on ajoute la première chaine qui correspond au titre*/
                            list = g_list_append(list, g_strdup_printf(chaine1));
                            /*pour éviter de mélanger deux titre, on réinitialise chaine1*/
                            c=getc(fp);//pour supprimer les guillemets                               
                          } 
        gtk_combo_set_popdown_strings(GTK_COMBO(pApp->pComboaffich), list) ;
        close(fp);}

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Je ne comprend pas bien ce que tu fait, ca me parait un peu bizarre je dois l'avouer ! En fait, tu fait des getc (je te conseil par ailleurs fgetc) idem dans une boucle puis en même temps 3 fgets à chaque tour de boucle... je crois qu'il va falloir que tu (re)réfléchisse à ton algorithme là

    A chaque appel de fgets tu lis la ligne suivante de ton fichier, sache-le !

    Par ailleurs, je ne sais pas quelle version de GTK+ tu utilises mais le widget GtkCombo est dépréciée depuis la 2.4 et nous en sommes à la 2.10 ! Si tu changes de widget après cette information, voir mon tutoriel: Bien utiliser les GtkComboBox et GtkComboBoxEntry
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Membre averti
    Inscrit en
    Février 2007
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 68
    Par défaut
    J'aurai dû metter une légère explication, il est vrai.
    Ce bout de code me permet de lire les trois lignes composant un mémo dans un fichier texte. le getc, me permet de dégager les " présent au début de la première de mes trois lignes.

    L'objectif étant de lire une ligne sur trois afin de n'afficher que les titres de mes mémos dans ma combo. Et, effectivement, je travaille avec une version bien inférieur à la 2.4

  4. #4
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Il serait un peu urgent de mettre à jour ton GTK+ quand même, la version 2.4 date déjà de 2005 alors j'ose même pas imagine les plus vieilles

    Bon passons, ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void ajout_intitule(gpointer *data)
    Tu devrais savoir que le type gpointer est équivalent à void * donc faire comme tu faits abouti à un argument de type void ** ce qui n'est forcément pas correct ! Cette fonction, je l'espère, n'est pas un callback et si s'en est un, pour quel signal de quel widget ? Car quel que soit le cas de figure la signature n'est alors pas correcte !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  5. #5
    Membre averti
    Inscrit en
    Février 2007
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 68
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void ajout_intitule(gpointer data)
    Si je mets cela, au moment de l'appel de ma fonction, je dois bien mettre ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ajout_intitule((gpointer) pApp);

  6. #6
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Si pApp est un pointeur oui, ca va de soi Est-ce que c'est un callback ? Sinon pourquoi le type gpointer ?
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. pleeeeeins de polys et erreur windows...
    Par Antickriszt dans le forum OpenGL
    Réponses: 3
    Dernier message: 28/06/2005, 14h30
  2. erreur 104 incompréhensible
    Par shadowmoon dans le forum Langage SQL
    Réponses: 5
    Dernier message: 18/05/2005, 16h16
  3. Message erreur Windows 16 bits
    Par francis m dans le forum Windows XP
    Réponses: 2
    Dernier message: 24/04/2005, 16h29
  4. Message d'erreur Windows lors de l'exécution de l'appli D6-
    Par kolac dans le forum Bases de données
    Réponses: 4
    Dernier message: 07/12/2004, 17h55
  5. Erreur windows lors du malloc
    Par Elessar dans le forum C
    Réponses: 5
    Dernier message: 16/12/2003, 08h53

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