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

MFC Discussion :

introduire du c dans du C++


Sujet :

MFC

  1. #1
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 12
    Par défaut introduire du c dans du C++
    Bonjours a tous,
    Voila je debute en Visual studio 2005 et en C++,
    Apres plusieurs jours de galere je suis arriver plus ou moins a fusioner deux librairie ensemble (une en c et l'autre en c++)..
    J'aimerai maintenant introduire dans du code c++ des fonctions en c qui sont dans un fichier (.c)(je sauis pas si c claire..).
    Mais voila dans mon fichier C un grand nombre de variable ont le meme nom que des variables dans le ficher c++ (donc lorsque je fait un include du fichier C le compil n' est pas content).
    D'apres mes recherches il faut utiliser un espace de nom avec la fonction (using) mais je ne sais pas trop comment l'utiliser lorsque c'est un fichier en .c a declarer???
    suis-je sur la bonne route ou alors completement perdu?
    Merci!!

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    le plus simple c'est de faire des modules séparer avec des .h et des .cpp différents... pour info, on n'inclut JAMAIS des .c ou des .cpp sinon on se retrouve exactement dans la situation où tu es
    essaie de trouver le .h associé à ton .c
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    peut etre que la solution consiste a transformer tes .c en .cpp et a adpater ce qui est necessaire .
    apres plus de problémes pour integrer du C++ dans ton code C.
    a part peut etre le design imposé par le C....

  4. #4
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 12
    Par défaut
    Okay, Merci pour vos reponses..
    Ayant encore un peu de mal a comprendre comment marche les header, j'essaies de convertir mon fichier c en un fichier c++,
    Des variable global eté initialisé dans le fichier C, alors je decide de mettre toutes mes variables global dans le constructeur..
    Mais il me met une erreur bete a la compilation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    
    c:\documents and settings\administrateur.titanium\mes documents\visual studio 2005\projects\lien\ogre3\simpletest2.cpp(216) : fatal error C1004: unexpected end-of-file found
    Build log was saved at "file://c:\Documents and Settings\Administrateur.TITANIUM\Mes documents\Visual Studio 2005\Projects\lien\ogre3\obj\Debug\BuildLog.htm"
    ogre3 - 1 error(s), 0 warning(s)
    
    Pourtant apres plusieurs verif je ai pas l'impression d'avoire oublier aucune virgule ni parenthese??

    voici le debut de ma classe:
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    
    #include<AR/gsub.h>
    #include<AR/video.h>
    #include<AR/param.h>
    #include<AR/ar.h>
    /* set up the video format globals */
    #ifdef _WIN32
    char *vconf = "Data\\WDM_camera_flipV.xml";
    #else
    char *vconf = "";
    #endif
     
    class simpleTest2 {
     
    public:
    simpleTest2(){
    int xsize, ysize;
    int thresh=100;
    int count = 0;
    int mode = 1;
    char *cparam_name = "Data/camera_para.dat";
    ARParam cparam;
    char *patt_name = "Data/patt.sample1";
    int patt_id;
    int patt_width = 80.0;
    double patt_center[2] = {0.0, 0.0};
    double patt_trans[3][4];
    }
     
    ~simpleTest2()
    {
    } 
     
    
    //be contined...
    QUelqu'un aurais une idée de la ou est mon probleme??
    Mercii!!

  5. #5
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    à mon avis la tu pars en galère ...
    il n'était plus simple de changer l'extension et de faire en sorte que ça passe à la compilation pour ensuite rajouter tes spécificités C++ ?
    sinon transformer du code C en classe ,c'est faisable mais ça dépend de la taille du code...

    bon dans ton cas présent tu as oublié le ; apres l'accolade de fin de ta classe ...

  6. #6
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 12
    Par défaut
    Mercii, la virgule je pensai qu'il ne fallait pas en mettre a la fin d'une classe (je debutee..)
    Mais bon ayant du mal avec le passage de c en cpp, j'essaye en creant un fichier d'en tete .h, sachant que je maitrise difficilement les header, je voudrais savoire si je fait bonne route? Dans mon .h, j'y met bien les declaration de variables, et de fonctions??? En efffet losrque je regarde des fichier ;h, il y a des instructions prepocesseur, tel que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    
    #ifndef OBJECT_H
    #define OBJECT_H
    
    que je ne comprend absolument pas....(pourtant je cherhce sur le net..)

    Et une derniere petite question, une fois mon .h creet, je n'aurais plus qu'a l'includer dans n'importe quel fichier cpp du dossier src, et pourais utiliser les fonctions ou c'est plus compliquer que cela?

    Merchiii a tous!

  7. #7
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    les instructions préprocesseurs permettent d'éviter les erreurs liées à la multi-inclusion : en gros pour le programme tu n'auras qu'une unique fonction identifié par son nom son type de retour et ses paramètres.

    Ensuite le .h ne continent que les dclarations. Quand tu feras l'inclusion de ton .h dans .cpp tu pourras utiliser la fonction mais si tu compile il plantera car il n'aura pas trouver le code liées aux calculs de cees fonctions

    voila chais po si j'ai été clair lol

  8. #8
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 12
    Par défaut
    Merci a tous pour vos reponse avec les quel je suis arriver a me debrouillé!!
    Bonne continuation a tous!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. introduire le temps dans une procedure
    Par florette dans le forum Langage
    Réponses: 4
    Dernier message: 23/04/2006, 17h05
  2. Introduire une image dans la base de données
    Par ghassenus dans le forum Bases de données
    Réponses: 4
    Dernier message: 04/04/2006, 10h09
  3. Introduire une variable dans une propriété
    Par priest69 dans le forum Access
    Réponses: 7
    Dernier message: 21/10/2005, 17h31
  4. Introduire du text dans une div
    Par 10-nice dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/09/2005, 11h50
  5. Introduire une condition dans une requete
    Par DeezerD dans le forum Langage SQL
    Réponses: 9
    Dernier message: 12/10/2004, 18h13

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