On Sunday 24 April 2005 23:08, patrick jayet wrote:
> >>int _tmain(int argc, _TCHAR* argv[])
> >>{
> >>...
> >>}
> >
> > La fonction main a deux signatures portables :
> > int main(void);
> > int main(int, char**);
>
> Parfait. J'ai corrig� la signature de main pour correspondre aux
> signatures standard, enlev� l'include de <tchar.h> et l� je parviens �
> compiler le programme.Comme tu as besoin de maintenir le code le plus identique possible pour tes deux plateformes, utilise bien les flags de compilation. Comme te l'a explique Marc Mongenet, il existe plusieurs flags. Certains te donne des informations specifiques a la plateforme, alors que d'autres sont specifiques au modele de CPU ou du compilateur utilise; a toi de voir (gcc -v + fichiers specs dans /usr/lib/gcc-lib/...). Ainsi tu pourrais conserve ton code intacte en incluant des *.h differents ou en redefinissant des macros. Par exemple : #define _TCHAR char Je ne dis pas que c'est ce qu'il faut faire dans le cas present (je ne connais pas la mcro initiale), mais c'est bien un exemple de la maniere dont tu peux essayer de ne pas toucher a ton code en fonction des systemes. Autre remarque, les symboles (fonctions, variables, etc.) dont le premier caractere est un '_' (souligne) sont a prendre avec des pincettes. Pourquoi ? La convention veut que ce soit des symboles "reserves". CAD, soit il s'agit de variables/macros/fonctions globales destinees a etre chachees (pour ne pas entrer en conflit avec tes propres definitions), soit il s'agit d'information manipulees par le compilateur (__LINE__, etc.), ou autre truc du meme genre. Sans beaucoup se tromper, on peut dire que d'acceder a ce genre de symbole/macro est destine a utiliser quelque chose de non-standard et ouvre la porte a bien des problemes quand il s'agit d'etre multi-plateforme. De plus, la compatibilite entre les differentes versions du compilateur et de librairies n'est pas assuree pour ces acces. Le C++ permet une "bonne" encapsulation et l'on ne devrait pas avoir besoin de programmer avec ce genre d'acces. Dans ce cas, pourquoi _TCHAR n'est-il pas une vraie classe ? C'est sans doute la veritable question... dc _______________________________________________ gull mailing list [email protected] http://lists.alphanet.ch/mailman/listinfo/gull
