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

OpenGL Discussion :

Pas de callback dans les headers en .c


Sujet :

OpenGL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Pas de callback dans les headers en .c
    salut

    je voudrais faire du code opengl avec chaque fonction callback dans un fichier source différent en les précisant à chaque fois par un #define " " mais cela ne fonctionne que pour les fichiers .h, pas les .c. quelqu'un sait il pourquoi ?

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    J'ai rien compris.

    Tu peux donner un exemple de code ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    bon par exemple quand tu met toutes les fonctions (affichage, clavier, etc) dans un seul fichier source, cela fonctionne. quand mets ces fonctions dans des fichiers headers en .h et le main() dans le fichier source principal cela marche aussi, par contre dans des headers en .c cela ne marche pas.

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Je ne sais pas ce qu'est un "header en .c", ni ce qui se cache derrière "cela ne marche pas". Essaye de détailler tes propos.

    Et tu devrais vraiment donner un bout de code, on irait beaucoup plus vite.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    une fonction d'affichage toute simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void display(void)
    {
       glClear (GL_COLOR_BUFFER_BIT);
       glColor3f (1.0, 1.0, 1.0);
       glLoadIdentity ();             /* clear the matrix */
               /* viewing transformation  */
       gluLookAt (0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
       glScalef (1.0, 2.0, 1.0);      /* modeling transformation */ 
       glutWireCube (1.0);
       glFlush ();
    }
    on peux mettre cette fonction dans le même fichier source que le reste du programme openGLUT ou alors créer un fichier header affichage.h contenant cette fontion :

    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
     
     
    #include "affichage.h" //header contenant la fonction ci dessus
     
    int main(int argc, char** argv)
    {
       glutInit(&argc, argv);
       glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
       glutInitWindowSize (500, 500); 
       glutInitWindowPosition (100, 100);
       glutCreateWindow (argv[0]);
       init ();
       glutDisplayFunc(display); 
       glutReshapeFunc(reshape);
       glutKeyboardFunc(keyboard);
       glutMainLoop();
       return 0;
    }
    Or, lorsque je place la fonction display dans affichage.c au lieu affichage.h (en déclarant #include "affichage.c" bien sur), message d'erreur de dev c++.

    d'ou cela vient il ? [/code]

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Quelle idée d'inclure un .c

    Seuls les fichiers en-têtes doivent être inclus, les fichiers source (.c) sont eux compilés.

    Si tu veux mettre ta fonction dans un .c séparé, il faudra tout de même créer l'en-tête correspondant, qui ne fera que déclarer la fonction. Ensuite partout où tu voudras utiliser la fonction, il faudra bien inclure le .h et non le .c.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    arf. il me semblait pourtant avoir déja vu ça dans des sources (pas les miennes ), merci et autant pour moi !

Discussions similaires

  1. pas de thead dans les tableaux ?
    Par Kalagan64 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 13/06/2008, 15h57
  2. Réponses: 1
    Dernier message: 02/05/2008, 12h53
  3. Ne pas imprimer URL dans le header?
    Par maagic dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 07/06/2007, 13h24
  4. [wxwidgets] erreur dans les header de wxwidgets
    Par dreamkiller dans le forum wxWidgets
    Réponses: 5
    Dernier message: 01/10/2006, 19h14
  5. Pas de casse dans les XML
    Par :GREG: dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/07/2002, 13h51

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