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 :

Probleme de compilation C -> C++


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    213
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 213
    Par d�faut Probleme de compilation C -> C++
    Salut

    j'ai un petit probleme, j'ai un pgm avec une extension .C qui fonctionne tres bien ss VC++ 6.0 et qd je copie le m�me pgm avec une extesion .CPP, j'obtiens une errerur du genre:

    Code:
    Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast


    Il y a til un moyen pour resoudre ce probleme.

    Ce n'est peut etre pas le bon forum mais j'ai d�ja post� sur celui de Visual C++ et je n'ai pu resoudre mon probleme.

    Voila le bout de code posant probleme:


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    int capt(int argc, char **argv)
    {
     
    argv="sauvegarde";
     
    /* Open the dump file */
    dumpfile = pcap_dump_open(adhandle, argv);
     
    * Retrieve the packets */
    while((res = pcap_next_ex( adhandle, &header, &pkt_data)) >= 0)
     
    {	
    /* save the packet on the dump file */
    pcap_dump(dumpfile, header, pkt_data);

  2. #2
    R�dacteur

    Avatar de Matthieu Brucher
    Profil pro
    D�veloppeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France, Pyr�n�es Atlantiques (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par d�faut
    Alors indique la ligne et tout le reste de ce que le compilateur te dit, �a nous aidera...
    Bon, d�j� une erreur qui n'aurait jamais d� passer, on ne fait pas de argv = "une cha�ne". argv est un char**, pas un char*.

  3. #3
    Membre �m�rite Avatar de Herode
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par d�faut
    Sur le principe du transtypage, http://c.developpez.com/faq/cpp/?pag...s#DIVERS_casts.

    Ton compilateur a du t'indiquer quel est le transtypage qui pose probl�me. En l'occurrence, tu devras sans doute passer par un reinterpret_cast, qui est un cast "non s�curis�" disant au compilateur : je sais que je transforme un type X en un type Y qui n'a rien � voir, mais je suis s�r que �a va passer alors ne me casse pas les couilles. Ou, en langage plus ch�ti� :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    X* px = new X();
    Y* py = reinterpret_cast< Y* >( px );

  4. #4
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    213
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 213
    Par d�faut
    Voila tt le message d erreur........

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    capture.cpp
    D:\C++\PGM\nouvel essai\Capture\capture.cpp(125) : error C2440: '=' : cannot convert from 'char [11]' to 'char ** '
            Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\C++\PGM\nouvel essai\Capture\capture.cpp(128) : error C2664: 'pcap_dump_open' : cannot convert parameter 2 from 'char ** ' to 'const char *'
            Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\C++\PGM\nouvel essai\Capture\capture.cpp(135) : error C2664: 'pcap_dump' : cannot convert parameter 1 from 'struct pcap_dumper *' to 'unsigned char *'
            Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    D:\C++\PGM\nouvel essai\Capture\capture.cpp(150) : warning C4018: '<' : signed/unsigned mismatch
    Error executing cl.exe.
    Creating browse info file...
    Pourquoi ce code qd l extension du fichier est .C????

    jE SS UN PEU PERDU

  5. #5
    Membre �m�rite Avatar de Herode
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par d�faut
    D'accord avec Miles : les deux premi�res erreurs ne devraient pas passer, m�me en C pur.
    char** != char*
    char** != char[n] !!

    Les deux derni�res erreurs sont plut�t des warnings, qui peuvent �tre pass�s sous silence en C. En C++, le contr�le de type est plus s�v�re (c'est une s�curit�). Le mieux est de les traiter eux aussi.

  6. #6
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    213
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 213
    Par d�faut
    Ok Merci C r�solu

    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
    int capt_save(int argc, char **argv)
    {
     
    *argv ="sauvegarde";
     
    /* Open the dump file */
    dumpfile = pcap_dump_open(reinterpret_cast<pcap_t *> (adhandle),reinterpret_cast<const char *> (*argv));
     
    /* Retrieve the packets */
    while((res = pcap_next_ex(adhandle, &header, &pkt_data)) >= 0)
     
    {	
    /* save the packet on the dump file */
    pcap_dump(reinterpret_cast<u_char *>(dumpfile), header, pkt_data);
    if(res == 0)

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [API][Cup] problem niveau compilation
    Par KoLziG dans le forum G�n�ral Java
    R�ponses: 1
    Dernier message: 02/01/2005, 19h30
  2. [JSP & TAGLIB] Probleme de compilation
    Par GesMo dans le forum Servlets/JSP
    R�ponses: 7
    Dernier message: 17/05/2004, 15h03
  3. Probleme de Compilation de la STL
    Par stoluup dans le forum MFC
    R�ponses: 3
    Dernier message: 05/05/2004, 17h25
  4. [TP]Probleme de compilation sous TP7
    Par yffick dans le forum Turbo Pascal
    R�ponses: 7
    Dernier message: 18/12/2003, 20h32
  5. Problemes de compilation avec g++ sous linux
    Par Selimmel dans le forum Autres �diteurs
    R�ponses: 3
    Dernier message: 19/09/2003, 13h43

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