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 :

[OpenGL ES]Probleme avec fopen


Sujet :

OpenGL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Points : 93
    Points
    93
    Par défaut [OpenGL ES]Probleme avec fopen
    Bonjour,
    je développe une appli pour mobile en utilisant openGL ES couplée à GLUT ES. Je suis en train d'essayer de lire des fichiers jpg ou tga pour les textures. Le problème est que quand je fais un fopen sur de tels fichiers, il me retourne un pointeur null. Par contre, si j'essaie de lire un fichier txt, il n'y a aucun probleme.

    J'ai essayé de créer un projet utilisant EGL pour voir si ce n'était pas GLUT ES qui avait un problème avec les fichiers. Résultat : le prog se lance puis crash

    Data Abort: Thread=9744e000 Proc=80096f40 'texture.exe'
    AKY=00004001 PC=0001bdd0(texture.exe+0x0000bdd0) RA=00015024(texture.exe+0x00005024) BVA=1e000004 FSR=00000407
    Unhandled exception at 0x0001bdd0 in texture.exe: 0xC0000005: Access violation reading location 0x00000004.
    The thread 0x5792b1ee has exited with code 0 (0x0).

    Il crash a partir du moment ou je déclare un FILE* meme si je n'appelle pas fopen.

    Pourquoi ? mystère et boule de gomme ...

    Merci de votre aide

  2. #2
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 862
    Points : 4 835
    Points
    4 835
    Par défaut
    Bonjour

    Ca sent le pointeur null et pas vérifié.
    Un peu de code nous aiderait à voir où se situe le bug.

    @++

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Points : 93
    Points
    93
    Par défaut
    Par exemple, avec EGL, l'instruction FILE *f; fait crasher le prog et visual m'ouvre le fichier ostream.

    Pour ce qui est de GLUT ES, l'utilisation de FILE et fopen() engendre un probleme que j'avais deja soulevé et que je n'ai jamais resolu (http://www.developpez.net/forums/sho...d.php?t=515847). Je pense qu'aucun code ne sera utile car ça plante rien qu'en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    FILE *f;
    f = fopen("essai.txt","rb");
    printf("open\n");
    Voila voila

  4. #4
    Membre habitué Avatar de Harooold
    Homme Profil pro
    Ingénieur 3D temps réel
    Inscrit en
    Mars 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur 3D temps réel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2008
    Messages : 136
    Points : 177
    Points
    177
    Par défaut
    Hello,

    Vérifie si l'ouverture s'est bien passée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if( ! ( f = fopen("essai.txt","rb" ) ) )
    {
        std::cerr << "Erreur lors de l'ouverture" << std::endl;
        exit(1);
    }
    Après ça, les voies de la programmation sont impénetrables

  5. #5
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 862
    Points : 4 835
    Points
    4 835
    Par défaut
    +1 pour Harooold
    Si je le fais uniquement en C, cela ferait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    FILE *f;
    f = fopen("essai.txt","rb");
    if(f==NULL){
    fprintf(stderr, "File is not opened !\n")
    }
    else{
    printf("open\n");
    //next process of the texture
    }
    @++

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Points : 93
    Points
    93
    Par défaut
    merci pour ces délicates intentions mais justement, je sais que le fichier n'est pas ouvert correctement puisque f a pour valeur 0 (pointeur nul). Je pense que le probleme vient plutot de ma configuration. donc je suis en train de refaire un projet propre en esperant que ça regle le probleme ...

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Points : 93
    Points
    93
    Par défaut
    MEA CULPA !
    En effet, fopen() fonctionne tres bien, il suffit juste de spécifier le bon path pour accéder au fichier voulu ...

    Je développe du mobile dc j'ai un émulateur et je zappais completement le fait que "D:\trucMuche" etait inconnu de l'émulateur. En fait, il suffit de mettre le fichier dans une zone partagée...

    Désolé.

    Merci

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

Discussions similaires

  1. [OpenGL / C++] Probleme avec dessin de rectangle
    Par nyoshi dans le forum OpenGL
    Réponses: 11
    Dernier message: 16/04/2008, 08h57
  2. probleme avec fopen !
    Par arnaud036 dans le forum Débuter
    Réponses: 12
    Dernier message: 27/02/2008, 15h05
  3. Probleme avec fopen()
    Par Panaméen dans le forum Bibliothèque standard
    Réponses: 4
    Dernier message: 12/12/2007, 21h25
  4. Probleme avec fopen sous linux
    Par rivieremathieu dans le forum C
    Réponses: 2
    Dernier message: 16/06/2006, 12h04
  5. Probleme avec OpenGL
    Par Sh. dans le forum OpenGL
    Réponses: 3
    Dernier message: 04/11/2004, 12h48

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