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++ Discussion :

problème de chaine de caractère


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 9
    Par défaut problème de chaine de caractère
    bonjour a tous,


    voila jai une chaine de caractère qui est mises dans une variable de la manière suivante, voici ma fonction (elle fonctionne, elle me crée bien mes image avec le nom qui s'incrémente bien!!)

    voici l'initialisation de mes variables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    static char	NomImage[10];
    static int             cptImage=0;
    Bitmap                *imgAffichée;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void NumImage()
    {
    char Extension[5]={".png"};		// extension du fichier créé
    itoa(cptImage,NomImage,10);	// conversion compteur en string
    strcat(NomImage,Extension);	// concaténation extention et compteur
    cptImage++;		             // incrémente le compteur
    }
    ensuite, dans mon main je fais mon appel de fonction comme cela, la seconde ligne est une fonction de ma librairie appartenant à ma carte d'acqisition!!elle me crée mon image avec le nom de fichier contenu dans NomImage...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    NumImage();
    imgSessionSaveBufferEx(Sid,(void *) ImaqBuffer,NomImage);
    ...
    le souci est pour l'affichage , j'utilise GDI+ et il m'affiche une bitmap avec le code suivant , d'abord l'initialisation de la bitmap a affichée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ...
    bitmap *imgAffichée = new Bitmap (L "NomImage");
    imgAffichée ->GetBounds(&rect1,&unitImage);
    InvalidateRect(hWnd,NULL,TRUE);	
    ...
    et l'affichage ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    void OnDraw(HDC hdc)
    {
    	Graphics graphics(hdc);
    	graphics.DrawImage(imgAffichée ,rect1);
    	Pen pen(Color(50,0,0));
    }

    J'en vient donc a mon problème, la fonction d'initialisation du Bitmap "new Bitmap(...) a besoin d'une chaine de caractère dans les parenthèses. Malheuresement je lui balance un pointeur de chaine de caractère du coup il utilise la chaine NomImage comme fichier contenant une image,alors que c'est un pointeur contenant l'adresse du nom de l'image...


    Comment dois je faire???

    Je suis sous WinXP et je travail avec la librairie GDI+...

    merci

  2. #2
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Pas sûr d'avoir compris mais NomImage est une variable c'est bien elle qui faut passer en paramétre ? Pourquoi la mettre entre "" ?

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 9
    Par défaut
    Citation Envoyé par hegros
    Pas sûr d'avoir compris mais NomImage est une variable c'est bien elle qui faut passer en paramétre ? Pourquoi la mettre entre "" ?

    c'est parce que "new Bitmap" demande une chaine de caractère en paramètre...

  4. #4
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 293
    Billets dans le blog
    2
    Par défaut
    Pourrais-tu nous donner la signature exacte du constructeur de la classe Bitmap?

  5. #5
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Citation Envoyé par franco82
    c'est parce que "new Bitmap" demande une chaine de caractère en paramètre...
    Beh justement NomImage est de type chaine de caractére...Un truc doit m'échapper la

  6. #6
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 9
    Par défaut
    oui NomImage est de type chaine de caractère mais c'est ma chaine qui contient le non de mon image exemple 0.png puis 1.png et lorsque je lance l'application il cherche un bitmap appelé NomImage voila pourquoi il n'afffiche rien....



    voila pour ce qui est du constructeur de la class bitmap

    [CODE]
    ...
    Bitmap::Bitmap(
    IN const WCHAR *filename,
    IN BOOL useEmbeddedColorManagement
    )
    ...

  7. #7
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 293
    Billets dans le blog
    2
    Par défaut
    Et quelle est l'erreur que tu obtiens?

  8. #8
    Membre émérite

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Par défaut
    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 <string>
    #include <sstream>
     
    std::wstring	     NomImage;
    static int             cptImage=0;
    Bitmap                *imgAffichée;
     
    void NumImage()
    {
      std::wostringstream formateur;
      formateur << cptImage << L".png";
      NomImage = formateur.str();
      cptImage++;
    }
     
    // ...
     
    bitmap *imgAffichée = new Bitmap (NomImage.c_str());

Discussions similaires

  1. Problème avec chaine de caractère
    Par Mouss340 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 17/12/2007, 20h46
  2. Problème avec chaine de caractères
    Par Nicegame dans le forum C
    Réponses: 7
    Dernier message: 27/04/2007, 18h35
  3. Problème fonctions chaines de caractères.
    Par Hayron06 dans le forum C
    Réponses: 12
    Dernier message: 13/11/2006, 21h47
  4. [MySQL] problème de chaine de caractère
    Par Leinad dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 18/10/2006, 14h52
  5. [FLASH 8] Problème de chaine de caractère
    Par dom_dev dans le forum Flash
    Réponses: 7
    Dernier message: 02/03/2006, 17h42

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