Probleme executable C
djtinou
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
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!
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!
A voir également:
- Probleme executable C
- Fichier executable unix ✓ - Forum MacOS
- Antimalware service executable ram ✓ - Forum Antivirus
- Html executable - Télécharger - Divers Web & Internet
- 'Ls' n’est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes. - Forum Windows
- 'Pip' n’est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes. ✓ - Forum Python
9 réponses
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
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
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
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)
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)
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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;
}
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;
}
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.
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.