Pb de compilation C++ pour Windows

Signaler
Messages postés
72
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
13 mai 2011
-
Messages postés
72
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
13 mai 2011
-
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

Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
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
Messages postés
72
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
13 mai 2011

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