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 de conversion (fonction DrawLine)


Sujet :

C++/CLI

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 7
    Par défaut problème de conversion (fonction DrawLine)
    Salut à tous,
    Je travaille en CLI/C++ et j'ai un petit problème à la compilation:
    (code allégé)
    je fais appel à cette fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pvDoc->DessineLigne(pointDepart,pointArrivee);
    qui se situe dans une autre classe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void Document::DessineLigne(Point pt1, Point pt2){
          Pen^ plume = gcnew Pen(app->couleur,(float)app->tailleOutil);
          dessin->DrawLine(plume, pt1, pt2);
    }
    Et j'obtiens cette erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    error C2664: 'gouache::Document::DessineLigne'*: impossible de convertir le paramètre 1 de 'System::Drawing::Point ^' en 'System::Drawing::Point'
    Je n'arrive pas à savoir ce que je dois changer dans ce code, si quelqu'un y parvient cela m'aiderai beaucoup

    merci d'avance

    nicolas.

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 153
    Par défaut
    Pense à la balise CODE qui permet une meilleur lisibilité

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void Document::DessineLigne(Point pt1, Point pt2){
    //      Pen* plume = gcnew Pen(app->couleur,(float)app->tailleOutil);
          Pen plume(app->couleur,(float)app->tailleOutil);
          dessin->DrawLine(plume, pt1, pt2);
    }
    car :

    Citation Envoyé par maicheul Voir le message
    Et j'obtiens cette erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    error C2664: 'gouache::Document::DessineLigne'*: impossible de convertir le paramètre 1 de 'System::Drawing::Point *' en 'System::Drawing::Point'
    Tu ne peux pas convertir un pointeur vers Point en Point.
    J'ai donc crée un Point, et non un Point*. Cela permet en outre de ne pas oublier de libéré de la mémoire...
    --
    Jérémie

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 7
    Par défaut
    en fait l'erreur ne provient pas de "plume" qui est un objet Pen, mais des deux objets Point. Je n'utilise des pointeurs (enfin ici des handle) nulle part
    c'est pour ça que je ne comprend pas d'où le compilateur va chercher ce problème de conversion..
    si tu as un autre idée là dessus..

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 153
    Par défaut
    Salut

    C'est quoi gcnew alors ? Ca ne crée pas un pointeur ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 7
    Par défaut
    en fait c'est du C++/CLI et les handle (^ au lieu de *)c'est comme les pointeurs mais ça permet de ne pas se soucier de la libération de mémoire le processeur le fait tout seul qd il estime qu'une variable n'est plus utilisée ou devenue inaccessible. En revanche un handle ne contient pas d'adresse mémoire lisible (donc tu peux pas la sauvegarder dans une vrble entière)
    je sais pas j'utilise ça c'est pratique, mais pour mon problème ça ne change rien que ce soit des ptr ou handle..

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 7
    Par défaut
    j'oublais: et donc pour créer un handle c avec gcnew à la place de new

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/08/2010, 12h49
  2. Réponses: 6
    Dernier message: 24/05/2007, 17h18
  3. Réponses: 2
    Dernier message: 23/01/2007, 12h01
  4. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04
  5. Réponses: 11
    Dernier message: 02/09/2003, 14h20

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