Erreur compiling

-
Messages postés
77
Date d'inscription
lundi 14 août 2006
Statut
Membre
Dernière intervention
27 février 2007
-
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

Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
16
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
<!--
Messages postés
77
Date d'inscription
lundi 14 août 2006
Statut
Membre
Dernière intervention
27 février 2007
8
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"
); }
Messages postés
77
Date d'inscription
lundi 14 août 2006
Statut
Membre
Dernière intervention
27 février 2007
8
ups désolé pour la mise en forme...
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
16
#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

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
Messages postés
77
Date d'inscription
lundi 14 août 2006
Statut
Membre
Dernière intervention
27 février 2007
8
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.
Messages postés
77
Date d'inscription
lundi 14 août 2006
Statut
Membre
Dernière intervention
27 février 2007
8
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.

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...???
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
16
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
<!--
Messages postés
77
Date d'inscription
lundi 14 août 2006
Statut
Membre
Dernière intervention
27 février 2007
8
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

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
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
16
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
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
16
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
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
16
#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
Messages postés
77
Date d'inscription
lundi 14 août 2006
Statut
Membre
Dernière intervention
27 février 2007
8
Si je comprends bien, on peut donc aussi afficher une console quand on est en MFC

#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
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
16
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

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 ?
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
16
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

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)