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 :

Decouper et classer un source


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 309
    Par défaut Decouper et classer un source
    Bonjour à tous.

    Mon code marche nickel, sans warning, sans error.

    Mais, pour y voir plus clair, j'ai essayé de sortir une des fonctions dans un autre fichier "Classes.c"
    void ClassRegister(HINSTANCE hInstance, int nCmdShow)
    {
    WNDCLASS wc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wc.hInstance = hInstance;
    wc.lpfnWndProc = WndProc;
    wc.lpszClassName = "Classe 1";
    wc.lpszMenuName = NULL;
    wc.style = CS_HREDRAW | CS_VREDRAW;

    RegisterClass(&wc);

    }
    J'ai donc créé ce fichier, l'ai nommé avec l'extension "Classes.c" et ajouté au projet

    A la place ou etait cette fonction, j'ai ajouté la ligne
    Et maintenant, j'ai beau faire ce que je veux pas moyen de compiler

    --------------------Configuration: FenetreVC - Win32 Debug--------------------
    Compiling...
    Classes.c
    C:\Documents and Settings\Pc\Bureau\Nouveau dossier\PbEnC v1.0 du 101031\Donnees\FenetreVC\Classes.c(1) : error C2146: syntax error : missing ')' before identifier 'hInstance'
    C:\Documents and Settings\Pc\Bureau\Nouveau dossier\PbEnC v1.0 du 101031\Donnees\FenetreVC\Classes.c(1) : error C2061: syntax error : identifier 'hInstance'
    C:\Documents and Settings\Pc\Bureau\Nouveau dossier\PbEnC v1.0 du 101031\Donnees\FenetreVC\Classes.c(1) : error C2059: syntax error : ';'
    C:\Documents and Settings\Pc\Bureau\Nouveau dossier\PbEnC v1.0 du 101031\Donnees\FenetreVC\Classes.c(1) : error C2059: syntax error : ','
    C:\Documents and Settings\Pc\Bureau\Nouveau dossier\PbEnC v1.0 du 101031\Donnees\FenetreVC\Classes.c(1) : error C2059: syntax error : ')'
    Error executing cl.exe.

    Classes.obj - 5 error(s), 0 warning(s)
    So quelqu'un voit ce que j'aurais pas du faire
    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Le nouveau fichier est maintenant compilé indépendamment du premier fichier.
    Je pense qu'il faut l'exclure de la liste des objets à compiler.

  3. #3
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    C'est une mauvaise idée de faire des include de fichier .c. Il faut procéder par compilation séparée.

    Voir par exemple le tuto de Melem : La compilation séparée

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 309
    Par défaut
    Bonjour à tous les deux et merci de vos réponses

    Je croyais bêtement que c'était tout bete et que l'on pouvait "Scinder" le code en autant de partie que l'on veut du moment que l'on mette les includes dans le bon ordre

    Apparemment cela ne marche pas comme ça en C

    Je pense qu'il faut l'exclure de la liste des objets à compiler.
    Je vais essayer de trouver cette liste

    C'est une mauvaise idée de faire des include de fichier .c.
    Alors ça des mauvaises idées...apparemment j'en ai un stock pour le C

    Pourquoi en ".c" si je veux scinder mon code source, cela aurait marché si je change l'extension ???

  5. #5
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Pourquoi en ".c" si je veux scinder mon code source, cela aurait marché si je change l'extension ???
    Non, l'extension n'a rien à voir.
    Par là, je voulais dire ce qu'on trouve habituellement dans un .c : un fichier contenant des fonctions, des déclarations de variables,...
    On inclue généralement des fichiers contenant des définitions de type, des prototypes de fonctions,... (et ils ont traditionnellement une extension en .h), enfin ce qu'on veut pouvoir partager avec plusieurs unités de compilation séparées.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 309
    Par défaut
    D'accord..moi je voulais decouper mon code afin qu'il soit plus organisé....
    Car quand le code est long on doit pouvoir classer les fonctions par style ou autre, non ???
    Cela n'est pas prévu par le C, de pouvoir mettre des fichier INCLUDES qui sont exactement comme un ".c"

    En attendant, comme j'avais cru que tu me parlais de l'extension, j'ai tenté de changer justement cette extension.
    Quand j'ai voulu sauvegarder ma fonction, je me suis aperçu que VC me proposait plusieurs formats pour les includes ".h .hpp .hxx .inl et .tlh

    Alors je sais que les .h c'est pour les header, j'ai supposé que .hpp et .hxx aussi .tlh je savais pas...et .inl je trouvais que ça ressemblait drôlement a INCLUDE, alors j'ai essayé....et tu vas pas y croire..j'ai inclus et compilé le .inl puis tout rebuildé...et plus d'erreur

    Alors ou j'ai tout juste, ou alors j'ai encore fait une bêtise tellement grosse que même les programmeurs de CROSOFT auraient pas prévu qu'on puisse la faire et ont laissé passé ça
    Ai-je bien fait, d'utiliser ce genre d'extension, ou je me suis encore lamentablement vautré

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

Discussions similaires

  1. A propos des modèles d'objet (avec sources)
    Par DevX dans le forum C++Builder
    Réponses: 14
    Dernier message: 01/12/2002, 12h22
  2. [Crystal Report 8] créer une source de données oracle
    Par Lina dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 14/11/2002, 13h53
  3. Source Safe -> VC++
    Par Emilio dans le forum MFC
    Réponses: 7
    Dernier message: 07/11/2002, 15h57
  4. Outil de reformatage d'un source Pascal
    Par HRS dans le forum Pascal
    Réponses: 7
    Dernier message: 21/10/2002, 14h55
  5. mp3 et source
    Par davlefou dans le forum C
    Réponses: 2
    Dernier message: 18/10/2002, 15h01

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