Problème pointeur[French]

Discussions on GFL SDK, the graphic library for reading and writing graphic files

Moderators: helmut, XnTriq, xnview

Post Reply
Utopy
Posts: 3
Joined: Mon Feb 25, 2008 6:20 pm

Problème pointeur[French]

Post by Utopy »

Bonsoir,
J'ai commencé il y a peu la programmation openGL avec GLUT et je coince actuellement au niveau de l'application des textures. Bon nombre de formats n'étant pas pris en compte par openGL je me suis tourné vers GFL SDK pour charger de facon complète et facile mes images.

Voila mon problème, la compilation fonctionne mais dès qu'elle se fini j'ai une erreure :

Exception non gérée à 0x0041459b dans texture.exe : 0xC0000005: Violation d'accès lors de la lecture de l'emplacement 0x00000028.

Avec comme option continuer ou arrêter...

J'utilise le microsoft visual C++ 2005 comme compilateur et la GFL 2.80
Le code vient de chez vous c'est le GFLtexbind.zip que j'ai pu télécharger à partir de cette page.

Chez moi il ne se compile pas et me sort un tas d'erreur en tout genre du coup j'ai repris le code et j'ai pris uniquement les parties qui m' interessent c'est à dire au niveau du chargement des images. Le code compile mais j'ai une erreure au niveau du pointeur de :

gluBuild2DMipmaps(GL_TEXTURE_2D, 3, image1->Width, image1->Height, GL_RGB, GL_UNSIGNED_BYTE, image1->Data);

Avec la source du mal en gras !

Voila le code(enfin tout ce qui concèrne mon problème) :

Code: Select all

#include <stdio> //votre site ne veux pas que je mette les .h tssss
#include <GFL> //ni libgfl
#include <GFL> //ni libgfle
#include <gl> //ni glut

//Variables pour les textures
char texFileName1[] = "img/tex1.jpg"; //Vous pouvez y aller : jpg, png, ppm, tga, ...

GLuint texName[1];
GFL_BITMAP *image1; //on a bien le pointeur sur l'image...

void init (void) 
{

//Début: Chargement des fichiers image avec GFL, j'ai supprimé toute la partie d'affichage avec "cout" qui ne m'étais pas utile.
    gflLibraryInit();
    GFL_FILE_INFORMATION info1;
    GFL_LOAD_PARAMS load_option; 
    gflGetDefaultLoadParams( &load_option );
    gflLibraryExit();
//Fin: Chargement des fichiers image avec GFL

Ici toute l'initation au niveau matriciel, pas de difficultées : glMatrixMode... etc...

glGenTextures(1, texName);
  
//Chargement de image1 dans la mémoire de texture sous le nom texName[0]

  glBindTexture(GL_TEXTURE_2D, texName[0]);
  glPixelStorei(GL_UNPACK_ALIGNMENT, 1);

  gluBuild2DMipmaps(GL_TEXTURE_2D, 3, image1->Width, image1->Height, GL_RGB, GL_UNSIGNED_BYTE, [b]image1->Data[/b]);
  //On peut libérer l'espace mémoire image1
  gflFreeBitmap( image1 );  
  
  //Paramétrage de la texture n 1
  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
  glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);

etc... etc...
Je ne sais pas trop d'ou peut venir le problème.

J'ai bien link :
glu32.lib
opengl32.lib
glut32.lib
libgfl.lib
libgfle.lib

Et je pense que ca peut venir de la GFL ..., en tout cas c'est un problème de pointeur sur data et je ne sais pas comment régler ca.

Merci !
User avatar
xnview
Author of XnView
Posts: 46236
Joined: Mon Oct 13, 2003 7:31 am
Location: France
Contact:

Re: Problème pointeur[French]

Post by xnview »

Utopy wrote: Exception non gérée à 0x0041459b dans texture.exe : 0xC0000005: Violation d'accès lors de la lecture de l'emplacement 0x00000028.
Cela crash à quel endroit?
J'utilise le microsoft visual C++ 2005 comme compilateur et la GFL 2.80
Le code vient de chez vous c'est le GFLtexbind.zip que j'ai pu télécharger à partir de cette page.
Je n'ai jamais utilisé....
Chez moi il ne se compile pas et me sort un tas d'erreur en tout genre du coup j'ai repris le code et j'ai pris uniquement les parties qui m' interessent c'est à dire au niveau du chargement des images. Le code compile mais j'ai une erreure au niveau du pointeur de :
Le gflLoadbitmap se passe bien?
Pierre.
Utopy
Posts: 3
Joined: Mon Feb 25, 2008 6:20 pm

Post by Utopy »

Tout d'abord merci pour cette réponse rapide !

Hum désolé si ce n'est pas de toi, j'ai vu la licence alors j'ai cru, mais apparemment j'ai mal interprété et je m'en excuse.

Le problème survient APRES la compilation et n'est pas une erreur de code mais apparemment une erreur au niveau de l'accès en mémoire à l'adresse du pointeur sur data.

Comme le compilateur ne me sort pas d'erreur de code je suppose que le "loadbitmap" se passe bien, mais comment en être sûre? Effectivement il est très probable que l'erreur vienne de la !
User avatar
xnview
Author of XnView
Posts: 46236
Joined: Mon Oct 13, 2003 7:31 am
Location: France
Contact:

Post by xnview »

Utopy wrote:Tout d'abord merci pour cette réponse rapide !

Hum désolé si ce n'est pas de toi, j'ai vu la licence alors j'ai cru, mais apparemment j'ai mal interprété et je m'en excuse.

Le problème survient APRES la compilation et n'est pas une erreur de code mais apparemment une erreur au niveau de l'accès en mémoire à l'adresse du pointeur sur data.

Comme le compilateur ne me sort pas d'erreur de code je suppose que le "loadbitmap" se passe bien, mais comment en être sûre? Effectivement il est très probable que l'erreur vienne de la !
gflLoadBitmap retourne une error s'il y a
Pierre.
Utopy
Posts: 3
Joined: Mon Feb 25, 2008 6:20 pm

Post by Utopy »

Hannn, enfaite en reprenant le code j'ai oublié de rajouter cette ligne :

Code: Select all

    gflLoadBitmap( texFileName1, &image1, &load_option, NULL );
Maintenant il exécute le programme normalement mais il me met toujours une erreur dans la fenêtre d'exécution comme quoi il y a une violation d'accès mais ça marche, la texture marche, tout marche et je suis bien content !

Merci pour votre aide, je suis désolé de vous avoir dérangé pour ça j'ai fait une erreur de débutant que je suis !

Merci encore et bonne chance à vous pour la suite !
Post Reply