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 d'un .h �crit en C dans un prog �crit en C++


Sujet :

C++

  1. #1
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    22
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 22
    Par d�faut Utilisation d'un .h �crit en C dans un prog �crit en C++
    Bonjour,

    Je voudrais r�actualiser un ancien programme en C en passant sous Turbo C++.

    Dans ce .c, j'inclue un fichier .h pour que le compilateur comprenne qu'il s'agit de d�claration fa�tes en C, j'ai rajout�:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    extern "C" {//déclarations}
    Mais � la compilation j'obtiens l'erreur suivante :

    "Declaration terminated incorrectly"

    Je n'arrive pas � r�soudre ce probl�me. Je n'ai pas trouv� dans les FAQS ni sur le forum quelque chose qui puisse m'aider.

    Pouvez-vous me venir en aide ?
    Merci d'avance.

    Seb

  2. #2
    Membre �clair� Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Par d�faut
    Je ne suis pas sur ce que je raconte mais est ce qu'il ne faut pas ecrire ;
    extern "c" { } <= en minuscule ???

  3. #3
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    22
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 22
    Par d�faut
    Merci d'avoir r�pondu!!

    J'ai essay� mais �a ne vient pas de l�.

    Je commence � �tre � court d'id�es !!

  4. #4
    HRS
    HRS est d�connect�
    Membre chevronn�
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    678
    D�tails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 678
    Par d�faut
    le coding suivant permet la prise en compte par un compilo C++ et
    l'ignorance par un compilo C
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #ifdef __cpluplus
    extern "C"{
    #endif
     
    // votre .h
     
    #ifdef __cpluplus
    }
    #endif

  5. #5
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    22
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 22
    Par d�faut
    le coding suivant permet la prise en compte par un compilo C++ et
    l'ignorance par un compilo C
    Code:

    #ifdef __cpluplus
    extern "C"{
    #endif

    // votre .h

    #ifdef __cpluplus
    }
    #endif
    Si j'ajoute ce code le fichier .h se compile correctement, la compilation du .c fonctionne mais lorsque je clique sur "Link" il m'affiche ce type de message d'erreur :

    Undefined symbol _Toto in module fichier.c

    Alors que Toto est d�finis dans le .h que j'ai inclus.
    Et l� je me demande si le .h ou le .c ne comporte pas une erreur ou si �a vient d'une option du compilateur.

  6. #6
    R�dacteur/Mod�rateur
    Avatar de JolyLoic
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    5 463
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 51
    Localisation : France, Yvelines (�le de France)

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

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 5 463
    Par d�faut
    Essayons de clarifier. tu as les fichiers a.c et a.h �crits en C. Tu as le fichier b.cpp �crit en C++, et tu veux dans ce fichier utiliser des fonctionnalit�s de a, c'est bien �a ?

    Si oui, tu peut modifier a.h en ajoutant au d�but
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    #ifdef __cpluplus
    extern "C"{
    #endif
    Et � la fin
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    #ifdef __cpluplus
    }
    #endif
    Ensuite, si tu compile a.c avec un compilateur C, et b.cpp avec un compilateur C++, tu devrais r�ussir � lier les deux sans probl�mes.
    Ma session aux Microsoft TechDays 2013 : D�velopper en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage � la d�couverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'h�sitez pas � me contacter.

  7. #7
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    22
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 22
    Par d�faut
    En fait j'ai r�cup�r� un fichier a.c et je l'ai ouvert sous Turbo C++.
    Dans a.c j'ai inclus b.h lui aussi �crit en C.

    J'ai essay� d'ajouter les lignes "#ifdef __cplusplus etc..." dans a.c et b.h mais j'ai les m�mes erreurs que pr�c�demment.

  8. #8
    Membre �clair� Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Par d�faut
    Je me demande si le probleme de vien pas du contenu des .h que tu inclus ?

  9. #9
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    22
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 22
    Par d�faut
    Apparemment en cr�ant un projet et en y incluant mes fichiers a.h, b.h et les fichiers .lib n�cessaires (car je g�re une interface IEEE) il cr�� correctement le fichier ex�cutable. Je n'ai plus d'erreur ...
    Merci d'avoir r�pondu � ma demande.

    Seb

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

Discussions similaires

  1. Utilisation d'une bib. (�crite en Java) dans un programme �crit en C++
    Par Farida1702 dans le forum Langages de programmation
    R�ponses: 2
    Dernier message: 13/04/2007, 13h51
  2. utiliser du code �crit en c dans visualc++
    Par Slimounet45 dans le forum Visual C++
    R�ponses: 6
    Dernier message: 05/04/2007, 19h53
  3. R�ponses: 6
    Dernier message: 07/04/2006, 01h10
  4. utiliser la touche SHIFT ou CTRL+A dans un DBGRID
    Par richard038 dans le forum Bases de donn�es
    R�ponses: 2
    Dernier message: 11/10/2005, 09h06
  5. utilisation de "LIKE" avec un type datetime dans r
    Par ericmart dans le forum Langage SQL
    R�ponses: 8
    Dernier message: 06/11/2003, 14h58

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