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 :

problème de namespace


Sujet :

C++

  1. #1
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut problème de namespace
    bonjour
    j'essaye de déclarer un namespace de cette facon:

    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
     
    #include <stdio.h>
    #include <stdlib.h>
     
    namespace finum {
    	int ggg(int i);
        void fndkk(void);
    	void lance(void);
    }
     
     
    #define int_dll  __declspec(dllexport) int __stdcall
    #define void_dll  __declspec(dllexport) void  __stdcall
    #define double_dll __declspec(dllexport) double __stdcall
    #define float_dll __declspec(dllexport) float __stdcall
    #define float_dll __declspec(dllexport) float __stdcall
     .......
    le compilateur me renvoie comme erreur :

    finum.h(4) : error C2061: syntax error : identifier 'finum'

    qu'est ce que cela signifie, et comment le corriger?
    merci

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Par défaut
    Tu compiles bien en C++, pas en C ?

  3. #3
    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
    Par défaut
    Ton code compile parfaitement. Est-ce que tu nous montres exactement ce qui se trouve dans ton code source ?

  4. #4
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut
    le problème est que j'ai des fichiers a la fois en C et en C++. Je ne sais pas en quoi je compile, mais j'utilise VC2005.

    voici le code en entier:
    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
     
    #include <stdio.h>
    #include <stdlib.h>
     
    namespace finum {
    	int ggg(int i);
        void fndkk(void);
    	void lance(void);
    }
     
     
    #define int_dll  __declspec(dllexport) int __stdcall
    #define void_dll  __declspec(dllexport) void  __stdcall
    #define double_dll __declspec(dllexport) double __stdcall
    #define float_dll __declspec(dllexport) float __stdcall
    #define float_dll __declspec(dllexport) float __stdcall
     
     
     
     
     
     
    extern "C" {
     
     
    int_dll ggg(int i){return finum::ggg(i);}
    void_dll fndkk(void){return finum::fndkk();}
     
     
    }
    j'utilise ce fichier pour faire des DLL.

  5. #5
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut
    mais ce n'est juste qu'un header. Alors je ne sais pas si c'est suffisant pour que vous y répondiez.


    voici l'ensemble des messages d'erreurs:

    finum.h(4) : error C2061: syntax error : identifier 'finum'
    finum.h(4) : error C2059: syntax error : ';'
    finum.h(4) : error C2449: found '{' at file scope (missing function header?)
    finum.h(8) : error C2059: syntax error : '}'

  6. #6
    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
    Par défaut
    L'extension du fichier est .c ou .cpp ?

  7. #7
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut
    l'extension du fichier est .c
    mais que ce soit en .cpp ou .c ca ne change rien.

    J'en profite pour poser cette question:
    si on a un projet qui est à la base en cpp, pourra t il lire des fichiers c?

    d'après ce que j'ai vu, VC2005 ne propose que des projets de type cpp.

  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
    Par défaut
    l'extension du fichier est .c
    mais que ce soit en .cpp ou .c ca ne change rien.
    Je me demande d'où tu tires des affirmations pareilles... Change l'extension en .cpp, ça fonctionnera. Visual Studio l'utilise pour choisir le mode de compilation adéquat, C ou C++.

  9. #9
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut
    j'ai toujours mon pb de namespace.
    A l'origine, j'avais un fichier cpp, que j'ai converti en .c dans visual express2005.

    le code est "on ne peut plus simple":

    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
     
    #include <stdlib.h>
    #include <stdio.h>
    //#include <fstream>
    //#include <iostream>
    //#include <cmath>
    //#include <iomanip>
    //#include <ctime>
    //#include "finum.hpp"
     
    using namespace std;
     
    void f(void){
     char *tab=new char[9];
     tab[0]=1; tab[2]=22; tab[3]=333; tab[4]=4444;
    }
     
     
    int main() 
     {
     
      return 0;
    }

  10. #10
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Citation Envoyé par deubelte
    j'ai toujours mon pb de namespace.
    A l'origine, j'avais un fichier cpp, que j'ai converti en .c dans visual express2005.
    Et si tu laissais ".cpp" ?

  11. #11
    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
    • Sous Visual, un fichier .c sera compilé en C à moins qu'on triche avec les options du projet pour le forcer en C++.
    • De même, un fichier .cpp sera compilé en C++ (sauf magouilles).
    • Les namespaces n'existent pas en C, d'où erreur dans la compilation du fichier .c
    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.

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

Discussions similaires

  1. [JDOM] Problème de namespace
    Par Smix007 dans le forum Format d'échange (XML, JSON...)
    Réponses: 17
    Dernier message: 15/07/2008, 13h10
  2. [XSLT]Problème de namespace sur un export XMi (UML 2.1/XMi 2.1)
    Par CocoRambo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 25/06/2007, 09h50
  3. [C#/.NET 2.0] Problème de namespace/référence
    Par Tetram165 dans le forum Services Web
    Réponses: 2
    Dernier message: 05/01/2007, 01h55
  4. [XSD] Problème de namespace
    Par pierrelm dans le forum Valider
    Réponses: 3
    Dernier message: 14/09/2006, 01h19
  5. [DOM] Problème de namespace
    Par dauggui dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 26/04/2006, 07h22

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