Pb de compilation C++ pour Windows

cs_valoue Messages postés 72 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 13 mai 2011 - 17 juin 2004 à 11:12
cs_valoue Messages postés 72 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 13 mai 2011 - 17 juin 2004 à 13:21
Bonjour,
Je developpe actuellement un appli qui doit tourner sous Windows et etre protable sous Linux.
J'utilise donc dans mon prog C++ (sous VC++ .net), le test suivant:

#ifdef WIN32
#include ...
#else
#...
#endif

La question que je me pose est "où est ce qu'est definit WIN32 ???
J'ai cherché et j'ai vu qu'il fallait que je compile avec:
cl /DWIN32 monprog.cpp

Mais ça ne marche pas. Il me dit une erreur "symbole externe non resolu _main dans la fonction mainCTRStartup".

De plus, je voudrais pouvoir générer automatiquement mon .exe depuis VC++, mais je ne sais pas où definir cette variable "WIN32"
Pouvez vous m'aider ???

MErci bcp bcp !!!

Valoue

2 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
17 juin 2004 à 12:29
sous VC.net, dans projet->propriétés, catégories C/C++->preprocesseur, case définition du préprocesseur, il y a toutes les valeurs définie pour la compilation de tous les fichiers du projet. (WIN32, _DEBUG ou _NDEBUG, _WINDOWS...)

normalement si tu crée un projet Win32 ces constantes sont déjà définies
0
cs_valoue Messages postés 72 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 13 mai 2011
17 juin 2004 à 13:21
Merci beaucoup pour ta réponse.
C'est bon, je l'ai ajouté, mais j'i toujours le même message d'erreur.

Faut-il que je compile a la main (cl /DWIN32 monprog.cpp) ?
Ou est ce que je peux lancer la génération depuis VC++.net aussi ?

Une autre question:
Qd je lance la génération (creation de l'exe, et il compile en meme temps), il me dit qu'il ne trouve pas les identificateurs. Je pense qu'il ne voit pas ce qu'il y a dans mon #ifdef:

#ifdef
#include "winsock2.h"
#include "winbase.h"
#define ecriretoto();{....}
#endif

L'erreur est du style:
ecriretoto(): identificateur introuvable

Est ce parce qu'il ne tient pas compte de la macro (pour win32) que j'ai inséré ???

Merci bcp encore.

Valoue
0
Rejoignez-nous