Erreur compiling

Utilisateur anonyme - 14 août 2006 à 19:56
adrienva Messages postés 77 Date d'inscription lundi 14 août 2006 Statut Membre Dernière intervention 27 février 2007 - 16 août 2006 à 14:32
hello all

PB: je lance VisualC++, je fais nouveau projet vide, nouveau fichier -> main.c
la je tape les lignes de code:

#include <stdio.h>
#include <stdlib.h>

int main (int argc, char *argv[])
{
printf("hello");
system("PAUSE");
return 0;
}

Compiling...
aze.c
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/aze.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

et voilou !!! je ne peux rien faire , j'ai desintaller/réinstaller rien n'y fait...

27 réponses

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
14 août 2006 à 20:10
Vérifie que ton projet est bien un projet console et non GUI (Windows).

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution
Forum de débats sur la programmation
<!--
0
adrienva Messages postés 77 Date d'inscription lundi 14 août 2006 Statut Membre Dernière intervention 27 février 2007 8
14 août 2006 à 20:44
salut, T'as oublié


#include
"stdafx.h"

avec ca ca marche chez moi:





#include"stdafx.h"



#include





<stdio.h>






#include





<stdlib.h>






int



main (
int
argc,
char

*argv[])
{


printf(




"hello"
); system(


"PAUSE"
); }
0
adrienva Messages postés 77 Date d'inscription lundi 14 août 2006 Statut Membre Dernière intervention 27 février 2007 8
14 août 2006 à 20:44
ups désolé pour la mise en forme...
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
14 août 2006 à 20:47
#include "stdafx.h"
c'est si tu utilise les entêtes précompilés. Sinon, ça changera rien.

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution
Forum de débats sur la programmation
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
14 août 2006 à 20:51
en effet, en faisant, new win32 console application et non win32 application, ca marche, mais now probleme, je travail avec la librairie SDL, qui doit etre en win32 application, comment faire pour afficher une console et faire des aller retour fenetre SDL <--> fenetre console, car la le "hello", s'inscrit dans un fichier stdout
0
adrienva Messages postés 77 Date d'inscription lundi 14 août 2006 Statut Membre Dernière intervention 27 février 2007 8
14 août 2006 à 20:52
ah ui c vrai
=> Donc il a pas décoché la case "en tete précompilé" quand il a crée son projet. Le code est Ok quend je décoche la case.
0
adrienva Messages postés 77 Date d'inscription lundi 14 août 2006 Statut Membre Dernière intervention 27 février 2007 8
14 août 2006 à 20:55
ah j'avais pas vu la réponse. Il me semble que la SDL crée une fenêtre  GUI donc je ne crois pas que tu puisses afficher la console. Tu peux utiliser SDL_TTF pour afficher du texte dans la fenetre graphique mais pas dans la console. Dites moi si je me trompe, je suis pas tout a fait sur de ma réponse.
0
Utilisateur anonyme
14 août 2006 à 21:06
Ben non, je ne pense pas que tu te trompe, j'essaye j'essaye mais je n'arrive pas a faire de printf avec ma SDL pour retourner en console, ou alors ca marche mais ca n'ecrit pas dans la console mais dans un fichier stdout...! et ca je m'en fiche
car moi je voulais faire une fenetre SDL hello bienvenue blabla tape sur 1 pour lancer le jeu et zou je retourne en console pour un jeu genre le + ou - !!!
mais bon impossible je crois...???
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
14 août 2006 à 21:07
Tien va voir
Tu aura tout la documentation nécessaire pour créé et utiliser une console en GUI.

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution
Forum de débats sur la programmation
<!--
0
adrienva Messages postés 77 Date d'inscription lundi 14 août 2006 Statut Membre Dernière intervention 27 février 2007 8
14 août 2006 à 21:10
j'utiliserais plutot la librairie SDL_TTF que la console
1- on n'a pas à ouvrir une console
2- on peut mettre des graphismes à coté du texte et ca c'est pratique

regarde ici, il y a tout du début à la fin : http://www.siteduzero.com/tuto-3-8-0-apprenez-a-programmer-en-c.html#part_1544
0
Utilisateur anonyme
14 août 2006 à 21:46
huhu, c'est vrai j'avais oublier la MSDN, tellement utile
Mais bon je suis un débutant, j'ai rien compris a ce qui était ecris, je traduis mais bon, c'est la creation de la fenetre qui me fais galerer, je fais copier/coller leurs instructions, et je sors avec 23erreurs...,

BOOL WINAPI AllocConsole(void);
undeclare WINAPI

a mon niveau je ne sais pas dechiffrer la MSDN encore, et c'est pour cela que je vais sur un forum pour qu'on m'explique avec des commentaires, MERCI BEAUCOUP quand même SAKingdom pour ton début
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
14 août 2006 à 21:53
Premièrement, c'est AllocConsole que tu utilise pas son prototype (il est déjà déclarer). Il est déclaré dans winbase.h je crois alors tu devra inclure windows.h

#include <windows.h>

BOOL Fonctionexemple (void)
{
   return AllocConsole(void);
}

Voilà. Bonne continuation.

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution
Forum de débats sur la programmation
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
14 août 2006 à 21:54
oups, oublie le void dans les paramètres de AllocConsole.

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution
Forum de débats sur la programmation
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
14 août 2006 à 21:54
#include <windows.h>

BOOL Fonctionexemple (void)
{
   return AllocConsole();
}

Voilà. Faut au moin que ce soit correct.

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution
Forum de débats sur la programmation
0
adrienva Messages postés 77 Date d'inscription lundi 14 août 2006 Statut Membre Dernière intervention 27 février 2007 8
15 août 2006 à 08:33
Si je comprends bien, on peut donc aussi afficher une console quand on est en MFC
0
Utilisateur anonyme
15 août 2006 à 12:24
#include <stdlib.h>
#include <stdio.h>
#include <SDL/SDL.h>
#include <windows.h>


BOOL Fonctionexemple (void)
{
   return AllocConsole();
}

int main(int argc, char *argv[])
{
          Fonctionexemple();
          return EXIT_SUCCESS;
}

la ça doit me faire une console c'est ca ??? oui j'suis nul je sais
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
15 août 2006 à 14:54
int main(int argc, char *argv[])
T'es déjà en mode console? Si oui t'as pas besoin. Tu peux créé une fenetre en console en la créant normalement mais en remplacent simplement le HINSTANCE qui est fournie en paramètre de WinMain par GetModuleHandle.

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution
Forum de débats sur la programmation
0
Utilisateur anonyme
15 août 2006 à 20:51
mhmmm, on s'egard, je vais essayer de ne rien oublier :)
Je suis sous C, j'ai un projet win32 application, de la j'ai creer une feuille main.c, dans laquelle j'ai mes:
#include <stdlib.h>
#include <stdio.h>
#include <SDL/SDL.h>
#include <windows.h>

De la j'ai un main qui est :

int main(int argc, char *argv[])
{
          ....SDL...
         ... SDL...
          return EXIT_SUCCESS;
}

Voila mon programme, qui ouvre une fenetre SDL (pas console), et dans cette fenetre j'ai une image avec marquer taper 1 pour jouer, 2 pour blabla, esc pour quitter!
Et j'aimerais qu'en tapant par exemple 2, il affiche "hello", dans une console, or la quand je fais un printf("hello"); ca ne marche pas, ca ne m'affiche pas le hello dans une console mais dans un fichier stdout!

D'ou la documentation que tu m'a donné et que je n'ai pas compris ^^

Ps: pour mon int main(int argc, char *argv[]), c'est juste mon main oui, je crois que c'est comme cela qu'on le declare ?
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
15 août 2006 à 20:56
Non. En Win32 Application (pas console), le point d'entré du programme est WinMain:


int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)

Aucun printf ne peut fonctionner en GUI. Au fait, pourquoi veut tu absolument une console avec une fenetre en plus?


C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution
Forum de débats sur la programmation
0
Utilisateur anonyme
15 août 2006 à 21:49
Ben parceque, je veux une fenetre SDL parceque c'est plus beau qu'une console pour dire bonjour et pour mettre de la musique, et ensuite je veux une console car je veux y mettre mon jeu du + / -, et comme tu la dis, aucun printf ne marche en GUI, c'est pour cela qu'il me faut une console, pour mon jeu, j'espere que c'est possible de faire ce mix...

Ps: donc pour mon projet, le int main(int argc, char *argv[])
je le change en :
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
(meme si j'y comprend rien je le fais lol)
0
Rejoignez-nous