CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Petit problèmes pour le c++ (débutant)

[GFA]_fingolfin
[GFA]_fingolfin
Niveau 10
11 juillet 2005 à 16:02:33

:merci: de m´avoir dit même les autres :) autrement tu aurait la réponse pour ma questions sur le SDL? Si tu ne l´as pas ce n´est pas grave.

dnob700
dnob700
Niveau 10
11 juillet 2005 à 16:05:24

non, tu ne peut pas charger de TGA ( ou n´importe quel autre type de fichier image) de cette manière tout simplement parce que la fonction SDL_LoadTGA n´existe pas.

Par contre il existe une bibliothèque SDL_Image que tu peut télécharger sur le site de la SDL qui fournit ce genre de fonction pour charger d´autre type de fichiers image.

[GFA]_fingolfin
[GFA]_fingolfin
Niveau 10
11 juillet 2005 à 16:06:51

Ok encore :merci: vous êtes vraimment sympas sur ce forum :)

[GFA]_fingolfin
[GFA]_fingolfin
Niveau 10
11 juillet 2005 à 16:16:14

Euh encore une petite question ( j´ai déjà tester plusieurs fois mais j´y arrive pas), en faite je voudrait tous simplement qu´a la suite d´un dialogue moi/pc il y est une image qui apparaisse, mais quand je met le code pour une image à la fin ( ou au début) du code pour le dialogue l´ordis me met toujours une erreur qui n´en ai pas une ( enfin à ma connaissance lol donc s´en ai surement une).

euh après encore un test il n´y a plus d´erreur mais maintenat le texte marche, mais il n´y a pas d´images après... Donc si vous aviez la solution à ce petit problèmes ce serait sympathique, après je pense que je vous laisserez enfin tranquille pour....euh jusqu´a demain :p)

[GFA]_fingolfin
[GFA]_fingolfin
Niveau 10
11 juillet 2005 à 16:24:06

Euh désolé pour le triple post, mais finalement sa ne remarche plus....... je met donc les deux codes à la suite ( en ne faisant que un, si vous me comprenez :p) ) et l´ordi me met une erreur ( la même qu´avant) qui me parait ( encore) stupide, donc je met sa: ( euh c´est juste le début du codes biensur)

  1. include < math.h>
  2. include < stdlib.h>
  3. include < time.h>
  4. include < SDL/SDL.h>

using namespace std;
main()

{
char A[16];

L´ordi me dit que la ligne ou il y " {" et fausse donc je ne voit pas pourquoi elle est fausse étant donné qu´elle fait partie du codes ou il y a juste un dialogue qui lui marche normalement ( euh il est compiler à part en faite).

ps: :desole: pour le triple post...

dnob700
dnob700
Niveau 10
11 juillet 2005 à 16:54:41

normal, il ne connait pas le namespace std.

Si tu fait des entrée sortie avec cin et cout rajoutte le header iostream ( pas de . h à la fin) qui va déclarer les objets cin et cout. De plus il les déclarera à l´intérieur du namespace std d´où l´utilisation de la directive using.

si ça ne marche pas après, wall ton code ( là par exemple : http://rafb.net/paste/ ) et recopi exactement ( copier coller) les erreurs du compilateur, c´est un impératif absolu de donner les erreurs. Et non pas de dire : " là il me dit que c´est faux..."

[GFA]_fingolfin
[GFA]_fingolfin
Niveau 10
11 juillet 2005 à 17:50:41

Ok encore :merci:

[GFA]_fingolfin
[GFA]_fingolfin
Niveau 10
11 juillet 2005 à 17:56:22

Suis ***, je l´avais déjà mit le " iostream" lol j´ai oublier de le copier/coller, par contre avec mes blem de réseau je ne peut pas envoyer le code sur ce site car c´est trop long.....

[GFA]_fingolfin
[GFA]_fingolfin
Niveau 10
11 juillet 2005 à 18:01:28

Lol sa y est j´ai corriger le premier bug, mais maintenant c´est le début du code de l´image SDL qui foire, donc en faite ma première erreur était: main() au lieu de int main()

Au faite si quelqu´un sait pourquoi ont doit mettre un int ici :merci: de me le dire et donc je vais essayer de corriger sa tous seul encore :merci: pour l´aide et les conseil fourni :)

Chaos_Clad
Chaos_Clad
Niveau 10
11 juillet 2005 à 18:04:43

C´est la valeur de retour de la fonction, quand tu mets return 0;, tu donnes à la fonction la valeur 0. Ben si tu mets int, tu peux retourner un entier, si tu mets bool, un 0 ou un 1 etc.

dnob700
dnob700
Niveau 10
11 juillet 2005 à 22:20:42

non, la " norme" du C ( enfin l´une des normes, celle que suis Dev C++) t´oblige à déclarer int la fonction main. Avc VC++ ce n´est pas obliger tu peut la déclarer void par exemple.

Bon, c´est juste une habitude à prendre sous Dev, effectivement, j´avais pas pensé à ça dans ton copier coller.

[GFA]_fingolfin
[GFA]_fingolfin
Niveau 10
11 juillet 2005 à 23:06:15

Bon maintenant le code marche sans que le logiciel dise qu´il y est une ou plusieurs fautes, mais, le dialogue se fait normalement puis l´ordi saute l´étape de l´affichage de l´image et dit directement " appuyez sur une touche pour quitter", donc la je ne sait plus lol.

dnob700
dnob700
Niveau 10
11 juillet 2005 à 23:11:05

probablement une bête erreurs de logique ( genre tu oublie de faire un événement pour attendre la suite, ou que sais-je) mais si tu ne paste pas ton code quelque part ( ou pire ici, si tu n´a aucune autre possibilité) on ne peut vraiment pas t´aider.

[GFA]_fingolfin
[GFA]_fingolfin
Niveau 10
12 juillet 2005 à 09:09:07
  1. include < iostream>
  2. include < math.h>
  3. include < stdlib.h>
  4. include < time.h>
  5. include < SDL/SDL.h>

SDL_Surface* screen; // l´ecran principale
SDL_Surface* firstscreen; / / tampon temporaire
SDL_Event event; // gestion d´evenement

void init_SDL() // initialise SDL
{
SDL_Init(SDL_INIT_VIDEO); // preapare SDL
screen = SDL_SetVideoMode(1024, 768, 32,SDL_HWSURFACE|SDL_DOUBLEBUF|SDL_FULLSCREEN); / / mode graphique
SDL_ShowCursor(0); / / eneleve la souris
}

void waitkey() // attend qu´on appuie sur RETURN
{
while(1) // boucle
{
while(SDL_PollEvent(&)) // aquisition d´evenement
{
if ( event.type == SDL_KEYDOWN) / / on appuie sur une touche ?
{
if ( event.key.keysym.sym == SDLK_RETURN) return; / / c´est " RETURN" ?
}
}
}
}

using namespace std;
int main()
{

SDL_Rect rect1; // structure rectangle
init_SDL(); // initialise ( plus haut)
firstscreen = SDL_LoadBMP("legolas.bmp"); // charge l´image
/ / on dessine
rect1.x = 0;
rect1.y = 0;
rect1.w = 1280; // défini le rectangle
rect1.h = 1024;

SDL_BlitSurface(firstscreen,NULL,screen,&1); /
/ colle l´image sur l´écran, NULL car on affiche TOUTE l´image
SDL_Flip(screen); // affiche la prochaine frame
waitkey(); // attends qu´on appuie sur Return ( plus haut)
SDL_ShowCursor(1); // reactive la souris
SDL_Quit(); // quitte SDL

char A[16];

cout<<"Dis moi ton prenom et je te dirais qui tu es"<<endl;
cin > >A;
cout<<"Tu es une personne"<<endl;

int age;
cout<<"Quel est ton age?"<<endl;
cin>>age;
if ( age>=18 && age<70)
{
cout < < " Tu est majeur" < < endl;
}
else if ( age<18)
{
cout < < " Tu est mineur" < < endl;
}
else
{
cout < < " Tu est vieux" < < endl;
}

char C[17];

cout<<"Ou habitez tu?"<<endl;
cin > >C;
cout<<"Moi personellement j´habite quelque part et que fait tu dans la vie?" < <endl;

char D[18];
cin>>D;
cout<<"Moi je suis collegiens"<<endl;

char choix;
cout<<"Aime tu l´imformatique ( O ou N)"<<endl;
cin>>choix;

if(choix ==´O´)
{
cout<<"Tu as raison cette activite est forte interessante"<<endl;
}

else
{
cout<<"Tu as tort cette activite est forte interessante"<<endl;
}

int E,F,G,H;
cout<<"Choisi un nombre entre 0 et 5"<<endl;
cin>>E;
cout<<"Choisi un nombre entre 2 et 7"<<endl;
cin>>F;
cout<<"Nous allons voire maintenant si tu as de la chance"<<endl;
srand(time(NULL));
cout < < " voici un nombre entre 0 et 5 : " < < rand()%6 < <endl;
cout < < " voici un nombre entre 2 et 7 : " < < ( rand()%6)+2 < <endl;
system ( "PAUSE");
return 0;
}

et les erreur sont:

D:\Dev-Cpp\lib\libSDLmain.a(SDL_main.o)(.text+0x35
a) In function `console_main´:

[Linker error] undefined reference to `SDL_main´

D:\Dev-Cpp\lib\libSDLmain.a(SDL_main.o)(.text+0x35
a) ld returned 1 exit status

D:\Dev-Cpp\truc fait perso\SDL et exo\Makefile.win [Build Error] ["SDL] Error 1

Bon bah si quelqu´un arrive à trouver le blem s´il pouvait me le dire se serait sympas :) :merci: d´avance .

inmilinpic
inmilinpic
Niveau 5
12 juillet 2005 à 09:49:11

mon vieux tu ne sauras jamais programmer, lorsqu´on a un problème, on teste longtemps toutes les possibilités, on utilise notre logique. Bien sur on recherche auprès d´autre personnes si c´est désespéré ou si c´est du jamais-vu mais bon le plus gros est fait par le programmeur, pas par d´autres personnes.

Cependant pour ton problème, va dans les options du compilateur ( devcpp) et --ENTRE-- le linkage de mingw32 et celui de Sdl ( entre -lmingw32 et -lSDL) rajoute le linkage vers -lSDLmain. Si c´est déjà fait, va dans le repertoire de ton IDE, dans le dossier lib et vérifie que libSDLmain.a s´y trouve bien

@+

[GFA]_fingolfin
[GFA]_fingolfin
Niveau 10
12 juillet 2005 à 10:38:43

Tous ce que tu dit de faire je l´ai déjà fait :snif: , par contre en plus de sa y´a un blem avec Dev c++ c´est en faite je compile mon code, ( celui ou d´autre) et souvent il me dit quand je fait exécuter que le doe source n´as pas était compiler ( alors que je l´ai fait juste avant...) donc si quelqu´un aurait déjà eu ce problèmes avec ce compilateur ( la j´ai encore essayer d´éxécuter cinq ou six fois ne refaisant me^me d´autres projet, sa marche toujours pas....).

Chaos_Clad
Chaos_Clad
Niveau 10
12 juillet 2005 à 13:07:16

inmilinpic, toi quand tu as appris à programmer tu pouvais résoudre tous tes problèmes tout seul ? :sarcastic:

:d) As-tu ajouté les fichiers comme c´est expliqué sur le site de JYY ? Les " lib" dans " lib", les " include" dans " include" etc. Une fois que tu as fait ça, tu ouvres un nouveau projet " Console Application", tu vas dans les options du projet puis dans les paramètres et dans " Editeur de liens", tu copies :

-lmingw32 -lSDLmain -lSDL

Ensuite dans le même dossier que ton projet, tu copies SDL.DLL que tu devrais trouver dans le fichier à dézipper que tu as DL pour installer SDL. Normalement ça devrait marcher.

[GFA]_fingolfin
[GFA]_fingolfin
Niveau 10
12 juillet 2005 à 14:05:06

Oui j´ai tous fait de tous, c´est pour sa que je comprend po, autrement vous savez pas pour mon problèmes de compilateur qui me dit que je peut pas exécuter car ce n´est pas compilé alors que j´ai compilé ( enfin voilà :lol: ) .

ps: je suis sur d´avoir bien mit les fichiers car le tutos marche pour afficher les images :)

JeanYvesYves
JeanYvesYves
Niveau 10
12 juillet 2005 à 16:09:54

[GFA]_fingolfin >

tu as mis :

int main()

SDL ne supporte pas cela : il faut que ton point d´entrée aie la forme fixe suivante :

int main(int argc,char** argv)

meme si tu n´utilises pas argc et argv par la suite :-)

ça devrait résoudre les problemes sur le point d´entrée :)

[GFA]_fingolfin
[GFA]_fingolfin
Niveau 10
12 juillet 2005 à 16:28:53

Merci sa marche pour lancer le programme je voit bien l´image, mais par contre le programme s´arrête à l´image ( enfin je peut quitter sa c´est sur, mais je ne voit pas le reste du programme qui est censer être un dialogue).

Donc j´ai essayer de séparer en deuxle programme, c´est à dire j´ai mit pour affichier l´image: int main(int argc,char** argv)
et pour la dialogue: int main ( )
mais sa ne marche pas ( en faite y´a que l´image qui se lance).

ps: autrement apriori le problèmes comme quoi le compilateur me dit que le code n´as pas était compilé, c´est que en faite apriori, tant qu´il reste une erreur le logiciel dit sa.

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment