visual c++ : comment faire appel à un fichier .h ? - C++ - Programmation
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)
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 !
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 !
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)
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
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 !
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 :
|
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 !
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 ?