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 codeblocks pour GTK sous Windows


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de acryline
    Profil pro
    Inscrit en
    Août 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 200
    Par défaut Erreur dans codeblocks pour GTK sous Windows
    Bonjour,

    situation rapidement, j'ai fait un petit soft graphique qui modifie un fichier xml pour configurer une simulation 3D dans le navigateur 3D Hippo ( OpenSim) . Ce logiciel fonctionne sous Linux, mais j'aimerais le compiler pour Windows.

    J'ai installé CodeBlocks dans une machine virtuelle sur mon PC et j'ai suivi ce tutoriel pour coder en GTK sous windows et surtout compiler mon code.

    J'ai eu du mal mais ça fonctionne, une fenêtre GTK s'affiche dans windows.

    Je viens donc d'importer le code de mon soft dans le codeblocks de ma machine virtuelle Windows XP. Et j'ai essayé de compiler. J'obtiens des messages d'erreurs et je n'arrive pas à compiler. Voici ces messages:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    -------------- Build: Debug in loginPageGraphiq ---------------
     
    Compiling: fonctions.c
    C:\Documents and Settings\acryline\Mes documents\loginPageGraphiq\fonctions.c: In function `void afficherFenetre(GADGET*)':
    C:\Documents and Settings\acryline\Mes documents\loginPageGraphiq\fonctions.c:15: error: cannot convert `GtkWidget*' to `GtkFrame*' for argument `1' to `void gtk_frame_set_shadow_type(GtkFrame*, GtkShadowType)'
    C:\Documents and Settings\acryline\Mes documents\loginPageGraphiq\fonctions.c:38: error: cannot convert `GtkWidget*' to `GtkFrame*' for argument `1' to `void gtk_frame_set_shadow_type(GtkFrame*, GtkShadowType)'
    C:\Documents and Settings\acryline\Mes documents\loginPageGraphiq\fonctions.c: In function `void message(GADGET*, gchar*)':
    C:\Documents and Settings\acryline\Mes documents\loginPageGraphiq\fonctions.c:121: error: cannot convert `GtkWidget*' to `GtkWindow*' for argument `1' to `GtkWidget* gtk_message_dialog_new(GtkWindow*, GtkDialogFlags, GtkMessageType, GtkButtonsType, const gchar*, ...)'
    Process terminated with status 1 (0 minutes, 1 seconds)
    3 errors, 0 warnings
    ajouté
    De plus, si je commente (à la hussarde) les lignes responsables des erreurs, les autres widgets du code provoquent les mêmes erreurs et de plus la fonction strcpy n'est pas reconnue par exemple. (mais pourtant le code par défaut de codebocks pour GTK fonctionne puisque la fenetre avec les boutons s'est affichée.)

    Include des mes fichiers .c:
    #include <stdlib.h>
    #include <string.h>
    #include <gtk/gtk.h>
    #include "header.h"
    gtk/gtk.h dans mon installation windows est dans C:/MinGW/include/gtk-0.2/

    Que me conseillez-vous ?

    Merci

    Edité : la fonction strcpy marche je n'avais pas mis #include <string.h> dans tous mes fichier .c

    Re-édité : pardon pour l'invasion, j'ai regardé le fichier main.c par défaut de codeblocks, j'ai corrigé mes ligne comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     gchar * adresse = (gchar*)gtk_entry_get_text(GTK_ENTRY(p_gadget->entree[0]));
    ça marche

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par défaut
    gtk_entry_get_text(); retourne un const gchar* est non un gchar*. Ceci a son importance d'autant qu'ici le pointeur retourné pointe directement sur le texte du widget. Ce n'est pas une copie.

  3. #3
    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
    Par défaut
    Citation Envoyé par acryline Voir le message
    Re-édité : pardon pour l'invasion, j'ai regardé le fichier main.c par défaut de codeblocks, j'ai corrigé mes ligne comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     gchar * adresse = (gchar*)gtk_entry_get_text(GTK_ENTRY(p_gadget->entree[0]));
    ça marche
    ça va marcher... jusqu'à ce que ça plante ! La syntaxe correcte est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const gchar *adresse = gtk_entry_get_text(GTK_ENTRY(p_gadget->entree[0]));
    ou (si tu veux réellement modifier "adresse"):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gchar * adresse = g_strdup (gtk_entry_get_text(GTK_ENTRY(p_gadget->entree[0])));

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

Discussions similaires

  1. Erreur dans BosoKernel pour les interruptions ?
    Par Edouard Kaiser dans le forum Autres architectures
    Réponses: 8
    Dernier message: 05/11/2017, 09h27
  2. Configurer Codeblocks pour gdk_threads_init sous Windows
    Par acryline dans le forum GTK+ avec C & C++
    Réponses: 0
    Dernier message: 20/08/2010, 11h09
  3. Interface graphique pour NMAP sous windows ?
    Par elitost dans le forum Développement
    Réponses: 2
    Dernier message: 07/11/2005, 00h09
  4. Authentification ldap pour apache sous Windows
    Par beastman007 dans le forum Apache
    Réponses: 3
    Dernier message: 13/07/2005, 12h03
  5. Front End graphique pour GDB sous windows
    Par KORTA dans le forum GDB
    Réponses: 8
    Dernier message: 20/08/2003, 09h52

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