visual c++ : comment faire appel à un fichier .h ?

visual c++ : comment faire appel à un fichier .h ? - C++ - Programmation

Marsh Posté le 20-10-2002 à 15:38:15    

Voilà je suis sous Visual C++ 6 et j'ai un fichier .cpp comme ça :
 
***************************************************************
#include <qapplication.h>
#include <qpushbutton.h>
#include <qfont.h>
#include <qvbox.h>
 
int main( int argc, char **argv )
{
    QApplication a( argc, argv );
 
    QVBox box;
    box.resize( 200, 120 );
 
    QPushButton quit( "Quit", &box );
    quit.setFont( QFont( "Times", 18, QFont::Bold ) );
 
    QObject::connect( &quit, SIGNAL(clicked()), &a, SLOT(quit()) );
 
    a.setMainWidget( &box );
    box.show();
 
    return a.exec();
}
***************************************************************
 
Evidemment à la compilation vc++ me jette (il ne trouve pas les .h des include).
 
Où est-ce que je dois dire à Visual où sont les fichiers .h ?

Reply

Marsh Posté le 20-10-2002 à 15:38:15   

Reply

Marsh Posté le 20-10-2002 à 15:39:56    

deja, tu fais :
#include <stdio.h>
et
#include "toto.h"
 
(<> c pour les fichiers standart, "" c pour les tiens)
 
si les .h sont dans le meme rep que les .c/.cpp alors t'as rien a faire  
 
sinon, tu dois rajouter le rep comme rep d'include
(tools->option->directory->include)

Reply

Marsh Posté le 20-10-2002 à 15:42:40    

Comment tu t'es débrouillé  :??:  
Normalement, quand tu installes QT, tout est configuré pour Visual C++ 6, y'a rien à faire !


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 20-10-2002 à 15:52:20    

Là y'a un truc que je ne comprends vraiment pas !
 
Quand j'ouvre un projet (.dsp) du tutorial Qt, il n'y a aucun problème à la compilation (en effet en installant Qt tout doit être alors configuré dans vc++).
 
Mais, lorsque je crée un projet moi même, à la compilation vc++ continue de me jeter !

Reply

Marsh Posté le 20-10-2002 à 16:07:05    

Regarde dans les projet des tutorials si ils n'ont pas un repertoire special pour les include (dans projects settings/preprocessor)

Reply

Marsh Posté le 20-10-2002 à 16:28:27    

Attention !!
 
Si tu développes avec QT, tu dois compiler tous les fichiers includes avec l'utilitaire MOC.EXE !
 
Pour ceci, dans l'onglet FileView, fais un clic droit sur le fichier .h, choisis Settings dans le menu contextuel et remplit comme ceci les champs suivants de l'onglet Custom Builds :
 
Description :
Moc'ing $(InputName).h ...
 
Commands :
%qtdir%\bin\moc.exe $(InputDir)\$(InputName).h -o $(InputDir)\moc_$(InputName).cpp
 
Outputs :
$(InputDir)\moc_$(InputName).cpp
 
Rajoute ensuite les fichiers commençant par "moc_" dans les fichiers du projet


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 20-10-2002 à 16:44:49    

fabsk : j'ai essayé ta proposition sans succès... (mais je pense que ça doit être qqchose comme ça)
 
Harkonnen : waouh ! je ne vois plus de vc++ dans ta solution, je voudrais faire un peu moins complexe que ce que tu proposes !
 
Je me suis résolu à faire une copie d'un tutorial qui fonctionne et à travailler dessus (au moins ça marche !) Mais c'est dommage de ne pas faire plus propre...
 
Merci en tout cas pour vos réponses !
 

Reply

Marsh Posté le 20-10-2002 à 16:59:22    

Manro a écrit a écrit :

Harkonnen : waouh ! je ne vois plus de vc++ dans ta solution, je voudrais faire un peu moins complexe que ce que tu proposes !



 
Euh, cher ami, tu es obligé de faire ce que je t'ai dit ! ce n'est pas une solution de remplacement !
 
Explication : MOC.EXE est livré avec QT, et permet de "construire" un fichier cpp à partir d'un fichier .h standard de QT.
 
Si tu rajoutes une classe qui contient des signaux ou des connexions à des signaux, tu es obligé de la déclarer comme ceci :
 

Code :
  1. class Test
  2. {
  3.      Q_OBJECT
  4.      // ... variables et méthodes
  5. };


 
le Q_OBJECT indique qu'il s'agit d'une classe utilisant la terminologie QT (je simplifie, hein), et donc elle doit passer obligatoirement par MOC.EXE.
 
j'ai fait quelques projets en QT, et je n'ai jamais eu le souci que tu décris !
 
Regardes donc les projets livrés avec QT, tu verras !
 
:hello:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed