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

C++/CLI Discussion :

Problème avec auxDIBImageLoad et l'OpenFileDialog


Sujet :

C++/CLI

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 122
    Par défaut Problème avec auxDIBImageLoad et l'OpenFileDialog
    Bnjour,
    j'ai créé un petit projet simple CLR windowsform sous visualStudio 2005

    je veux utiliser Glaux pour chargé des image.

    je n'ai ajouté que les 4 lignes de code en gras dans la fonction Form1 , mais aussi le header glaux.h et les linkage dans propriétés du projet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Form1(void)
    		{
    			InitializeComponent();
    			
    			openFileDialog1->ShowDialog();
    			AUX_RGBImageRec * TextureImage[1];
    			TextureImage[0] = auxDIBImageLoad("new.bmp");
    			free(TextureImage[0]); 
    			//
    			//TODO*: ajoutez ici le code du constructeur
    			//
    		}

    Au lancement de l'application l'openFileDialog s'ouvre , si je clique sur Annuler, l'auxDIBImageLoad renvoi le pointeur et charge l'image, mais si je clique sur OK de l'openFileDialog, l'auxDIBImageLoad retourne une erreur (faild to load DIB file)


    je ne comprend pas pourquoi, je sèche vraiment , je ne sais pas d'où vient vient le problème.

    Merci pour votre aide,

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 122
    Par défaut
    Bonjour ,
    voilà ou j'en suis,
    J'ai essayé un step by step, ensuite au moment ou je ferme l'openFileDialog y avait ce message qui apparait :



    Bon, je me demandait ce que signifie exactement ce message , ensuite après de multiples essais , j'ai remarqué que quand j'ouvre un fichier qui se trouve dans le même répertoire de l'executable, l'auxDIBImageLoad fonctionne !!! au delà de ce répertoire , il échoue.

    pour moi c'est étrange

  3. #3
    Membre chevronné

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Par défaut
    Salut,
    Je crois que si le fichier n'est pas dans le répertoire du *.exe il faut donner plus de précision.
    Par exemple "C:\\Documents and Settings\\Propriétaire\\Mes documents\\Mes images\\MonFichierImage.bmp" au lieu de "MonFichierImage.bmp" tout court.

    Ce nom complet est obtenu par : openFileDialog1->FileName

    Ca donnerai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Form1(void)
    {
    	InitializeComponent();
     
    	if ( openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK )
            {
    	     AUX_RGBImageRec * TextureImage;
    	     TextureImage = auxDIBImageLoad(openFileDialog1->FileName);
    	     free(TextureImage);
            }
    	//
    	//TODO*: ajoutez ici le code du constructeur
    	//
    }
    Euh,... juste une question : pourquoi créer un tableau à un seul élément ( AUX_RGBImageRec * TextureImage[1]; ) plutôt que créer tout simplement un pointeur ( AUX_RGBImageRec * TextureImage; ) comme j'ai fait dans mon exemple?

    Bye

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 122
    Par défaut
    Merci pour ta réponse, mais en fait l'openFleDialog n'a rien à voir avec le fichier image que j'essaie de charger il sert pour autre chose.
    Le soucie et seulement quand un openFileDialog retourne vrai (DialogResult::OK) (en sélectionnant n'importe quel fichier en dehors du projet ) l'auxDIBImageLoad échoue même si le chemin est correcte de l'image.bmp qui se trouve en paramètre et en dure de la fnction auxDIB.

    si le fichier sélectionne a partir de l'openFileDialog se trouvais dans le répertoire du projet , en fermant ce dialogue par OK, l'image se charge . (pas de message d'erreur )

    Voilivoilou

  5. #5
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut opendialog,restoredirectory
    bonjour
    peut etre que le probleme vient de opendialog.restoredirectory qui est à true par defaut
    initiliase le à False avant d'appeler opendialog ,car il memorise le nom du dernier repertoire accede si quelqu'un repond ok à opendialog.
    tant et si bien que si quelqu'un utilise une api du genre :
    -fonctionAp.load(nomfichier),il recherche dans le dernier dossier accede.
    bon code....

Discussions similaires

  1. Problème avec auxDIBImageLoad
    Par death_style dans le forum OpenGL
    Réponses: 5
    Dernier message: 09/01/2011, 12h52
  2. Problème avec OpenFileDialog()
    Par ZeProgrammator dans le forum ASP.NET
    Réponses: 9
    Dernier message: 28/09/2009, 13h57
  3. Probléme avec OpenFileDialog
    Par lisco dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 21/07/2009, 14h01
  4. [VB.NET] Problème avec OpenFileDialog
    Par Lahouari dans le forum Windows Forms
    Réponses: 5
    Dernier message: 03/03/2005, 15h41
  5. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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