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

wxWidgets Discussion :

Rendre wxGetApp() visible.


Sujet :

wxWidgets

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 107
    Points : 61
    Points
    61
    Par défaut Rendre wxGetApp() visible.
    Bonjour.
    Je ne sais pas trop si c'est un problème de wxWidget, de Dev-C++ ou de C++ en général, désolé si je viens au mauvais endroit.
    Jusqu'ici, je n'avais fait que des programmes unifichiers en C++ et je ne sais pas si je comprends bien la logique des programmes multifichiers.

    J'ai un "projet" Dev-C++ du type "GUI Ansi static" où mes fichiers sont au nombre de deux : monApp.cpp et maFenetre.cpp. Le premier de ces deux fichiers "inclut" un fichier monApp.h et le second inclut un fichier maFenetre.h
    Comme vous vous en doutez, les deux fichiers monApp.h et monApp.cpp définissent une classe dérivée de la classe wxApp.
    Dans le fichier monApp.h, juste après la déclaration de la classe monApp, j'ai mis la macro DECLARE_APP(MonApp)
    qui a pour effet, dit la documentation, de rendre "visible" la fonction wxGetApp(), qui renvoie une référence sur l'application.
    J'utilise la fonction wxGetApp() dans le fichier maFenetre.cpp.
    Si je ne mets pas dans ce fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #include "monApp.h"
    et que je demande "Tout reconstruire", je reçois l'objection que la fonction wxGetApp() n'est pas déclarée.
    Cela me semble curieux, car le fichier monApp.cpp, qui fait partie du même projet, contient cet "include".
    Faut-il comprendre que quand on demande "Tout reconstruire", il y a d'abord une compilation qui se fait fichier par fichier avant que tous les éléments du projet ne soient mis ensemble ?

    Si quelqu'un peut m'aider à voir clair là-dedans, merci d'avance.
    M.

  2. #2
    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 : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Tu cherches trop compliqué. C'est en fait très simple : la fonction wxGetApp étant déclarée dans le fichier monApp.h, partout où tu veux l'utiliser il faut inclure ce fichier. Sinon le compilateur ne peut pas savoir qu'elle existe (il ne va aller fouiller tous les autres fichiers sources pour savoir si telle ou telle fonction existe).

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 107
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par Laurent Gomila
    Tu cherches trop compliqué. C'est en fait très simple : la fonction wxGetApp étant déclarée dans le fichier monApp.h, partout où tu veux l'utiliser il faut inclure ce fichier. Sinon le compilateur ne peut pas savoir qu'elle existe (il ne va aller fouiller tous les autres fichiers sources pour savoir si telle ou telle fonction existe).
    OK. L'image que je me faisais des choses était en effet assez invraisemblable. Je croyais que quand on demandait "Tout reconstruire", il y avait d'abord une espèce de précompilation qui mettait tous les fichiers du projet ensemble puis seulement vérifiait si toutes les fonctions étaient déclarées, mais dans un scénario pareil, il serait sans doute difficile au compilateur de dire dans quel fichier de départ est l'erreur.
    Merci.
    M.

  4. #4
    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 : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    En fait l'option "tout reconstruire" ne fait rien de spécial, elle permet seulement de tout construire sans tenir compte des précédentes compilations (et donc cela recompile même les fichiers qui n'ont pas été modifiés). Mais à part ça c'est une compilation classique.

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

Discussions similaires

  1. [VBA - ACCESS] Rendre (in)Visible une zone
    Par nelior dans le forum IHM
    Réponses: 9
    Dernier message: 05/10/2007, 22h39
  2. Réponses: 5
    Dernier message: 12/07/2006, 11h21
  3. Réponses: 3
    Dernier message: 12/03/2005, 21h30
  4. [C#] [Windows service] Rendre Word Visible ?
    Par chris92 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 26/07/2004, 17h45

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