Probleme executable C

Fermé
djtinou Messages postés 3 Date d'inscription jeudi 13 août 2009 Statut Membre Dernière intervention 14 août 2009 - 13 août 2009 à 01:48
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 26 août 2009 à 08:16
Bonjour,
je suis actuellement le cours du siteduzero sur la SDL et je travail avec codeblock.

mon problème est celui-ci,

J'ai fait plusieur programme qui s'execute normalement sur codeblock et quand je vais voir l'executable de mes programmes qui se trouve dans leur dossier respectif, il est impossible de les lancer.

Avant un message d'erreur s'affichait disant qu'il y avait un problème de SDL.dll et qu'il fallait reinstaller l'application.

c'est ce que j'ai fait j'ai mis le fichier SDL.dll (le 1.2.13.0) je lance mon programme il n y a plus de message d'erreur par contre deux fichier .txt vide qui sont stderr.txt et stdout.txt aparaisse et sont vide mais mon programme s'affiche mais disparait alors que quand je le lance sur codeblock il s'affiche parfaitement.

J'ai tout essaye que ca soit avec system("pause"); et tout cela ne fonctionne pas aider moi svp merci d'avance!

9 réponses

spoophy Messages postés 354 Date d'inscription mercredi 17 décembre 2008 Statut Membre Dernière intervention 19 août 2009 41
13 août 2009 à 02:42
comme solution provisoire essaye une instruction d'attente du déclare une variable que tu n'utilisera pas dans le programme jusqu'à la fin ou tu demade a l'utilisateur de rentrer une valeur sa servira de quitte et ton programme s'exécutera avant cette demande
0
djtinou Messages postés 3 Date d'inscription jeudi 13 août 2009 Statut Membre Dernière intervention 14 août 2009
13 août 2009 à 02:49
mais mon programme ne doi pas attendre d'instruction mon programme se ferme que si je clique sur la croix ou quand j'appuis sur la touche escape sinon mon programme ne devrais pas se fermer.

et de toute facon mon programme il tourne a l'infini c'est un jeux que j'ai creer donc je ne peux pas faire ce que tu ma dit car mon programme est censer tourner jusqa ce que j'accomplisse une des deux action que j'ai citée. merci quand meme mais tu n'a pas d'autre solution?:S
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
13 août 2009 à 08:43
salut.
Tu as fait un programme en mode console si je comprend bien.
As tu regardé ce qu'il y a dans tes deux fichiers ?
STDOUT c'est le flux de sortie standard en C, et STDIN le flux d'entré standard. Il est possible que ce qu'il devait t'afficher est dans STDOUT.
Il faudrait que tu configures codeblock de manière à ce qu'il affiche même les commandes de compilation, et que tu nous dises quelle commande il utilise. Quel compilateur utilises tu ? Je redoute l'utilisation de -mwindow et d'une bibliothèque pas très standard lors de la compilation. (d'ailleurs, l'alternative pour savoir si le problème viens de codeblock ou non, c'est de compiler toi même en ligne de commende)
0
djtinou Messages postés 3 Date d'inscription jeudi 13 août 2009 Statut Membre Dernière intervention 14 août 2009
14 août 2009 à 01:01
je sais pas comment on voit le compilateur et c'est pas un programme console c'est une fenetre ou j'ai des image ou je m'amuse a faire promener un bonhome a l'aide des touches flecher.
0

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

Posez votre question
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
17 août 2009 à 08:13
Avec code block, tu doit avoir gcc.
0
j'ai minGW avec codeblock mais j'ai toujours le problème le programme s'affiche et disparait a la seconde qui suit. aider moi svp

voila le code si ca peut vous aider.


#include <stdlib.h>
#include <stdio.h>
#include <SDL.h>
//#include <SDL_image.h> /* Inclusion du header de SDL_image (adapter le dossier au besoin) */


int main(int argc, char *argv[])
{
SDL_Surface *ecran = NULL, *rouge,*defaut = NULL;
SDL_Rect position;
int continuer = 1;
int clicgauche =0;
int tempsPrecedent=0;
int tempsActuel=0;
int compteurcouleur=0;
position.x = 0;
position.y = 0;

SDL_Init(SDL_INIT_VIDEO);

SDL_WM_SetIcon(SDL_LoadBMP("icone.bmp"), NULL);

ecran = SDL_SetVideoMode(800, 600, 32, SDL_HWSURFACE);
SDL_WM_SetCaption("DEGRADER!!!!!", NULL);

/* Chargement d'une image Bitmap dans une surface */
defaut = SDL_LoadBMP("rouge.bmp");
/* On blitte par-dessus l'écran */

SDL_Event event;

while (continuer)
{
tempsActuel = SDL_GetTicks();
if (tempsActuel - tempsPrecedent > 10) /* Si 30 ms se sont écoulées */
{
tempsPrecedent=tempsActuel;
compteurcouleur++;
if (compteurcouleur>4)
{
compteurcouleur=1;
}
switch (compteurcouleur)
{
case 1:
defaut=SDL_LoadBMP("jaune.bmp");
break;
case 2:
defaut=SDL_LoadBMP("rouge.bmp");
break;
case 3:
defaut=SDL_LoadBMP("bleu.bmp");
break;
case 4:
defaut=SDL_LoadBMP("vert.bmp");
break;

}

}

SDL_SetColorKey(defaut, SDL_SRCCOLORKEY, SDL_MapRGB(defaut->format, 255, 255, 255));

SDL_WaitEvent(&event);
switch(event.type)
{
case SDL_QUIT:
continuer=0;
break;

case SDL_KEYDOWN:
switch(event.key.keysym.sym)
{
case SDLK_ESCAPE: // Veut arrêter le jeu
continuer = 0;
break;

case SDLK_1:
defaut=SDL_LoadBMP("rouge.bmp");
break;
case SDLK_2:
defaut=SDL_LoadBMP("bleu.bmp");
break;
case SDLK_3:
defaut=SDL_LoadBMP("vert.bmp");
break;
case SDLK_4:
defaut=SDL_LoadBMP("jaune.bmp");
break;

}
break;


case SDL_MOUSEMOTION:
position.x = event.motion.x;
position.y = event.motion.y;
if (clicgauche)
{
SDL_BlitSurface(defaut, NULL, ecran, &position);
}
break;

case SDL_MOUSEBUTTONUP:
if (event.button.button == SDL_BUTTON_LEFT)
clicgauche = 0;
break;

case SDL_MOUSEBUTTONDOWN:
if (event.button.button == SDL_BUTTON_LEFT)
{
clicgauche=1;
}

if (event.button.button == SDL_BUTTON_RIGHT)
{
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));
}
break;








}



SDL_Flip(ecran);

}




SDL_FreeSurface(defaut); /* On libère la surface */
SDL_Quit();

return EXIT_SUCCESS;
}
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
25 août 2009 à 14:29
minGW est le portage de gcc sous windows.
Je ne pense pas que le problème vienne du code source si celui-ci fonctionne sous CodeBlock.
à la lueur te tes dernières informations, il est possible que cela vienne d'une différence d'environnement.
type un variable non défini ou l'utilisation d'une DLL à la place d'une autre.
Peux tu compiler en statique (option -static à l'édition des liens) ? ça pourrai résoudre le problème.
Lance ton programme depuis la console avec de la chance il t'affichera un message d'erreur.
0
Merci a toute vos reponse j'ai trouver le problème et il est stupide.

dans le dossier de mon projet je prend mon executable qui est dans debug avec la sdl.dll et jle met a la racine de mon dossier ou y a mon projet et voila le tour est jouer :D. merci a tous bonne continuation
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
26 août 2009 à 08:16
Là, il faudrait que tu explique un peu mieux. C'était quoi alors le souci ? dll ou autre ?
0