Partage
  • Partager sur Facebook
  • Partager sur Twitter

inclure fonction C dans du C++

    8 mai 2008 à 11:27:31

    Bonjour,

    Je suis actuellement en stage en entreprise et je dois repasser une application DOS en application fenêtre C++ avec Borland.

    Je coince sur comment récupérer des fonctions écrites en C et les incorporer au code C++ de telle manière à ne pas tout ré-écrire car mon stage est court... J'ai bien essayé d'inclure une fonction dans un #ifdef cpluplus dans le code d'un bouton à cliquer et d'ajouter en include le fichier en .c tout en n'oubliant pas de l'ajouter au projet, mais rien ne se passe.

    Quelqu'un aurait-il la gentillesse de m'aider? Je suppose que ce problème doit être assez récurrent, j'ai essayé de rechercher sur le forum, mais je n'ai pas du taper ce qu'il fallait.

    Amicalement,
    • Partager sur Facebook
    • Partager sur Twitter
      8 mai 2008 à 11:28:53

      Je vois pas où est le problème, le C++ supporte le C très bien (à queqlues rares exceptions près).

      Ne voudrais tu pas dire, utiliser des classes C++ en C ? Si oui regarde sur developpez il y a un article dessus.
      • Partager sur Facebook
      • Partager sur Twitter
        8 mai 2008 à 11:50:35

        bonjour,

        Merci de m'avoir répondu si rapidement un jour férié ;)

        En fait, ce sont des fonctions écrites en C dont l'exe tourne dans une fenêtre DOS.
        j'ai déjà fait l'interface graphique avec borland5, et maintenant je dois incorporer (inclure) les fonctions C qui se trouvent dans les fichiers séparés au programme C++. Par exemple, j'ai un formulaire qui en fonction des cases cochées ou des sélections des liste de choix doit appeler telles ou telles fonctions en C et donc afficher tel ou tel résulat. J'ai lu que je pouvais mettre une directive #ifdef __cplusplus et appeler la foction c dedans, mais cela ne fonctionne pas.

        J'ai lu quelque part qu'il fallait créer une Procédure dans la fonction qui gère le formulaire, mais je ne sais pas le faire.

        Si je dois tout ré-écrire le C en C++, je ne suis pas sorti de l'auberge, d'autant plus que j'ai eut une petite formation en C, mais pas en C++, j'ai cherché sur le net, mais je n'ai pas trouvé grand chose surement parce que je n'ai pas tapé les bons mots clés.

        • Partager sur Facebook
        • Partager sur Twitter
          8 mai 2008 à 18:21:19

          Ben, si j'ai bien compris ton problème (qui, si je l'ai bien compris, n'en est pas vraiment un), tu as un fichier du style "fonction.c", et tu aimerais l'incorporer dans un programme C++?
          Rien de plus simple! Tu changes juste le nom du fichier "fonction.c" en "fonction.cpp" (pour que le compilateur l'accepte), et tu l'utilises comme un fichier normal (#include "fonctions.cpp", etc...), vu que le C++, c'est surtout du C avec des options ^^.
          • Partager sur Facebook
          • Partager sur Twitter
            8 mai 2008 à 19:17:26

            Citation : Scaerloc

            #include "fonctions.cpp"


            on n'inclus pas un fichier sources, c'est reservé aux headers (et .inl et co.)

            Citation : Scaerloc

            vu que le C++, c'est surtout du C avec des options ^^.


            Le C++ ne reprend que la syntaxe du C et quelques autres choses, mais le C++ n'est pas du C "avec options", c'est un autre langage
            • Partager sur Facebook
            • Partager sur Twitter
              8 mai 2008 à 19:51:29

              tu dois donc compiler tes fichiers .c dans ton projet C++!

              Pour être certain que la compilation passe voici une petite astuce à entrer dans les fichier .h associé aux fichiers .c :

              #ifndef __MON_FICHIER_H__
              #define __MON_FICHIER_H__
              
              #ifdef __cplusplus
              extern "C"
              { 
              #endif //#ifdef __cplusplus
              
              // Les signatures des fonctions
              int ma_fonction_exemple( int i );
              
              #ifdef __cplusplus
              }
              #endif //#ifdef __cplusplus
              
              #endif //#ifndef __MON_FICHIER_H__
              


              Cela va permettre de conserver la convension d'appel standard C.
              • Partager sur Facebook
              • Partager sur Twitter

              inclure fonction C dans du C++

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown