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 :

utilisation de inet_addr


Sujet :

C++

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Par défaut utilisation de inet_addr
    bonjour tout le monde,

    je souhaite récupérer une adresse IP d'un champ textBox (String) et la convertir en adresse IP.

    Note : tous les tests sont réalisés en amont afin de savoir si c'est un format de string correspondant a une adresse ip.

    Voila la commande utilisé pour tenter de convertir le tout :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    inet_addr(Form1::textBox_IP->Text);
    comme ca, ca serait trop facil sans problème, mais cela me génère une erreur a la compilation et comme je re-débute dans le C ++ je ne comprend pas tout!!

    l'erreur générée est la suivante :
    impossible de convertir le paramètre 1 de 'System::String __gc *' en 'const char *'
    Impossible de convertir un type managé en type non managé
    je fais donc appel a vous afin d'avoir une aide pour comprendre ce qu'il se passe.

    Aide de la MSDN :
    The inet_addr function converts a string containing an (Ipv4)
      0  0

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 394
    Par défaut
    Ce n'est pas du C++ pur, c'est du dotnet (du Managed C++ visiblement).

    inet_addr réclame un type de pointeur C++ normal (const char *) et tu lui passes un pointeur managé (String *) -->Erreur.

    Essaie en passant directement la String (et non son adresse) : Il y a sans doute un opérateur de conversion qui te permettra la passer en paramètre...

    Ou bien, tu restes en dotnet jusqu'au bout et tu utilises les fonctions réseau de dotnet...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
      0  0

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Par défaut
    je dois donc convertir mon String * en char *???
      0  0

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 394
    Par défaut
    J'ai dit NON, le String * n'est pas convertible en char *.

    Mais le String tout court (sans étoile, je répète) possède peut-être des opérateurs de conversion.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
      0  0

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Par défaut
    si je récapitule bien les chose, je dois :

    1 convertir ma String * en String
    2 convertir ma String en char *

    si c'est bien récapitulé, pourrait on m'indiquer la voie pour effectuer ces différentes taches, car je n'ai aucunne idée sur la facon de procéder.

    merci d'avance.
      0  0

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 394
    Par défaut
    1 : Tu essaies de me dire que tu ne sais pas utiliser un pointeur ?
    2 : Ben, tu essaies de passer simplement *tonPointeur à ta fonction, et tu vois si ça marche: Si ça marche, c'est qu'il y a une conversion implicite. Si ça ne marche pas, regarde dans la doc de la classe String s'il y a ou non une fonction pour obtenir un char* ou pour écrire dedans...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
      0  0

  7. #7
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Par défaut
    je sais juste qu'un pointeur fait référence à l'adresse d'une variable, amis je ne sais pas bien les utiliser.

    je sais récupérer l'adresse d'une variable et l'attribuer a un pointeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    int tempo = 0;
    int * ptempo;
    ptempo = &monInt;
    // Si je souhaite obtenir la valeur de tempo avec le pointeur sur celui ci :
    int test = *ptempo + 5;
    voila, je sais "enfin" et "plus ou moins" utiliser les pointeurs

    Cependant la conversion de String en char * n'est pas réaliser automatiquement, je dois donc créer une fonction pour cela.
    Mais comment? une piste d'aide serait la bienvenue.

    merci d'avance.
      0  0

  8. #8
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
      0  0

Discussion fermée
Cette discussion est résolue.

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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