Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
674 connectés 

  FORUM HardWare.fr
  Programmation

  [C/C++] Eviter de vérifier des fichier inclus

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C/C++] Eviter de vérifier des fichier inclus

n°25865
korben
Posté le 19-04-2001 à 10:54:05  profilanswer
 

Salut
Je bosse avec Visual C++ 6.0 et je commence à en avoir marre de le voir vérifier à la compilation les fichiers inclus. Je travaille en effet avec un niveau de warning max. (level 4) et il controle à chaque fois les libraires, qui elles n'ont pas été prg pour passer sans erreur le level 4. Ce qui est vraiment chiant. J'ai ainsi 350 warnings, mais AUCUN pour mon code. ALors, il y a un moyen de dire au compilateur ne check pas les fichiers inclus? (#include balabala.h)
D'avance merci
@+

mood
Publicité
Posté le 19-04-2001 à 10:54:05  profilanswer
 

n°25870
AirBg
The Philosopher
Posté le 19-04-2001 à 10:59:34  profilanswer
 

tu peux pas utiliser des instructions du type
 
#IFNDEF blabla
 
#DEFINE blabla
 
la tu mets tes include
 
#ENDIF
 
??


---------------
"There's not such a thing as a stupid question, only stupid people..."
n°25890
korben
Posté le 19-04-2001 à 11:25:37  profilanswer
 

HEIN? Ce qui tu as écrit permet juste d'éviter de définir 2x la même chose. Or ce que je veux, c'est qu'il arrête de checker les fichiers inclus. Voila un p'tit exemple
J'écris, dans le fichier test.cpp le code suivant (en gros)
#include "super_machin.h"
void main(....){
 
int a=2:
int b=0;
char c=0:
c=2*a;
b=super_fonction(a,c);//défini dans super_machin.h
}
 
Je veux  que lorsque je compile cela, Visual C++ 6 me dise
attention, tu fais une conversion de int->char (c=2*a) =>risque de perte de donnée.
Mais je ne veux pas qu'il me fasse chier en me disant dans super_machin tu as écrit .... et c'est peut-être faux. Je ne veux pas qu'il affiche les warnings provenant d'un fichier inclus. VOILA
J'espère que c'est plus clair, au cas ou cela ne l'était pas.
D'avance merci
@+

n°25891
verdoux
And I'm still waiting
Posté le 19-04-2001 à 11:29:36  profilanswer
 

Mais quels sont les warnings que t'as des fichiers inclus ? En principe, il n'y en a pas.

n°25907
SoWhatIn22
Posté le 19-04-2001 à 12:50:32  profilanswer
 

si sous Visual ya des warning avec des include fournit par microsoft.
Par exemple lorsqu'on utilise la STL, le compilo est pas content et mets plein de warning.
 
moi, ce que j'ai fait, c'est que j'ai mis des:
#pragma warning( disable : 4786 )
 
un peu partout.
4786, c'est le numéro du warning qu'il me sort quand j'utilise la STL.
 
si tu veux faire du multiplateforme/multi chépasquoi, alors
 
#if defined(WIN32) etc...
#pragma warning( disable : 4786 )
#endif
 
C'est la seule solution que j'ai trouvé.

n°25919
korben
Posté le 19-04-2001 à 13:24:51  profilanswer
 

Verdoux? T'es sur de m'avoir compris.
Toute personne fournissant des librairies ne travaille pas avec le même compilateur et pas obligatoirement avec le même niveau de warning. Donc, obligatoirement, tu peux avoir des warnings que le programmeur n'avait pas. De plus, bcp de programmeur ne s'intéressent pas aux warnings et laissent donc les lignes du style:
int a=...;
char c=a+2;
A la place de  
int a=...
char c=char(a+2);
 
Tu peux donc avoir des warnings. J'ai de la peine à croire que si tu as programmé avec des librairies incluses, tu n'as jamais eu un warning causé par la librairie.
Quoi qu'il en soit, je recherche toujours cette option et, malheureusement, SoWhatIn22, t'as solution ne convient pas à mon utilisation.
D'avance merci
@+

n°25921
verdoux
And I'm still waiting
Posté le 19-04-2001 à 13:32:23  profilanswer
 

Ton pb de char vient d'un .c, pas d'un .h
En principe t'as pas besoin de recompiler tes librairies à chaque fois. T'as juste besoin des interfaces définies dans les .h et ensuite c'est le linker qui se démerde.

n°25927
BENB
100% Lux.
Posté le 19-04-2001 à 13:39:21  profilanswer
 

Avec les pargma tu dois pouvoir changer le warning level depuis le code... le baisser avant les .h puis le remonter
je ne vois pas mieux

n°25931
korben
Posté le 19-04-2001 à 13:42:39  profilanswer
 

Verdoux:
Lorsque tu écris #include xxxxx.h dans un fichier cpp appartenant à ton projet et que tu cliques sur compile avec un warning level 4 sous VC++ 6, il vérifie aussi ce que tu inclus.
Il me sort donc des warnings qui ne concernent PAS MON CODE. Je cherche donc un moyen de contourner cela.
Tu veux des exemples? En voilà, totalement au bol
c:\program files\microsoft visual studio\vc98\include\mmsystem.h(1623) : warning C4201: nonstandard extension used : nameless struct/union
c:\program files\microsoft visual studio\vc98\include\mmsystem.h(1627) : warning C4201: nonstandard extension used : nameless struct/union
c:\program files\microsoft visual studio\vc98\include\mmsystem.h(1648) : warning C4201: nonstandard extension used : nameless struct/union
c:\program files\microsoft visual studio\vc98\include\mmsystem.h(1652) : warning C4201: nonstandard extension used : nameless struct/union
c:\program files\microsoft visual studio\vc98\include\xmemory(39) : warning C4100: '_P' : unreferenced formal parameter
c:\program files\microsoft visual studio\vc98\include\xmemory(41) : warning C4100: '_P' : unreferenced formal parameter
c:\program files\microsoft visual studio\vc98\include\vector(249) : warning C4663: C++ language change: to explicitly specialize class template 'vector' use the following syntax:
        template<> class vector<bool,class std::allocator<unsigned int> > ...
c:\program files\microsoft visual studio\vc98\include\xlocale(242) : warning C4511: 'codecvt_base' : copy constructor could not be generated
        c:\program files\microsoft visual studio\vc98\include\xlocale(223) : see declaration of 'codecvt_base'
c:\program files\microsoft visual studio\vc98\include\xlocale(242) : warning C4512: 'codecvt_base' : assignment operator could not be generated
        c:\program files\microsoft visual studio\vc98\include\xlocale(223) : see declaration of 'codecvt_base'
c:\program files\microsoft visual studio\vc98\include\xlocale(296) : warning C4663: C++ language change: to explicitly specialize class template 'codecvt' use the following syntax:
        template<> class codecvt<unsigned short,char,int> ...

n°25934
verdoux
And I'm still waiting
Posté le 19-04-2001 à 13:52:05  profilanswer
 

Si ça passe au niveau 3, tu peux essayer par exemple:
#pragma warning (push, 3)
#include <mmsystem.h>
#pragma warning (pop)

mood
Publicité
Posté le 19-04-2001 à 13:52:05  profilanswer
 

n°25953
korben
Posté le 19-04-2001 à 14:31:10  profilanswer
 

Oui, sauf que je n'inclus pas mmsystem.h. C'est un autre .h qui inclut mmsystem.h
Sinon,qqn connait un algorithme efficace pour trouver la valeur median d'un tableau de valeur?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C/C++] Eviter de vérifier des fichier inclus

 

Sujets relatifs
Comment faire un fichier REG[SQL Server] exporter vers un fichier
Fichier *.WavAttributs de FICHIER ???
php-envoie d'un fichier sur le net[vb] Modification d'un octet dans un fichier
[W2k] Quel est l'équivalent du && (linux) pour un fichier .bat[VC++]Récupérer des valeurs d'un fichier texte dans des variables !
fichier texte en php!!!!!!!!!!! Index Server + fichier exotiques !!!!!! ?
Plus de sujets relatifs à : [C/C++] Eviter de vérifier des fichier inclus


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR