programme en C
Bonsoir à toutes et à tous :
J'ai une petite question "hors maths" à vous poser et excusez moi si je la poste ici parceque c'est le seul endroit qui me vient à l'esprit sur lequel je poste des messages le plus souvent, et j'ai vraiment besoin de votre aide...
En résumé, j'ai un petit programme redigé en langage C que j'essaie d'exécuter sur mon pc ... Le IDE installé s'appelle : Code::Blocs.
quant je fais la compilation et j'essaie de l'exécuter, la console qui apparait sur l'écran est celle du programme bien évidemment, mais qui n'a pas pour chemin absolu sur mon pc : "D:\Documents and Settings\Romario21\Mes documents\testsdl\testsdl.exe"
et qui doit apparaitre sur la barre de titre de la console au lieu de \WINDOWS\system32\cmd.exe ...
Le message qui s'affiche sur l'ecran noir de la console est: " appuyez sur une touche pour continuez", au lieu d'appliquer les instructions de mon code source, ce qui fait signe que mon programme ne marche vraiment pas sur cette console...
svp aidez moi je ne sais pas comment régler ce petit problème !!
Et merci d'avance !!
J'ai une petite question "hors maths" à vous poser et excusez moi si je la poste ici parceque c'est le seul endroit qui me vient à l'esprit sur lequel je poste des messages le plus souvent, et j'ai vraiment besoin de votre aide...
En résumé, j'ai un petit programme redigé en langage C que j'essaie d'exécuter sur mon pc ... Le IDE installé s'appelle : Code::Blocs.
quant je fais la compilation et j'essaie de l'exécuter, la console qui apparait sur l'écran est celle du programme bien évidemment, mais qui n'a pas pour chemin absolu sur mon pc : "D:\Documents and Settings\Romario21\Mes documents\testsdl\testsdl.exe"
et qui doit apparaitre sur la barre de titre de la console au lieu de \WINDOWS\system32\cmd.exe ...
Le message qui s'affiche sur l'ecran noir de la console est: " appuyez sur une touche pour continuez", au lieu d'appliquer les instructions de mon code source, ce qui fait signe que mon programme ne marche vraiment pas sur cette console...
svp aidez moi je ne sais pas comment régler ce petit problème !!
Et merci d'avance !!
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Si tu as bien précisé au moment de la compilaton qu il s'agissait d un programme CONSOLE (et pas un programme avec fenetres) tu devrais voir s'ouvrir une console quand tu l'executes et ton programme s'executer.
(une erreur fréquente)
Tu peux aussi changer de compilateur C .
Si tu ne programmes qu'en C, tu peux utiliser l'excellent compilateur Pelles-C
qui possede une interface de programmation correcte et qui est un compilateur gratuit pour Windows.
j'ai finalement reussi à trouver d'où vient l'erreur, c'etait dans le code source... merçi quand meme pour ta reponse Mr. Fin de partie...
j'ai encore un petit problème qui survient en ce moment, quant je fais des printf(" "); au lieu d'avoir la reponse affichée sur la console, un fichier texte apparait à coté de mon executable : .exe nommé : sdtout.txt, quant je l'ouvre, je trouve le message affiché par printf();...
comment je peux reconfigurer mon programme pourqu'il s'adapte entierement au mode console et que tous les instructions de mon code source s'appliquent uniquement sur la console et non sur un fichier... je tiens à preciser que mon code source ne contient aucun pointeur sur une structure de type FILE* ni de fopen() ou fclose() fprintf() fgets() qui servent à travailler sur des fichiers...alors c'est un peu bizarre ça.. j'ai meme tester sur un programme tout petit : int main () { printf("bonjour\"); return0; } et ça ne marche toujours pas, le problème resiste encore... est ce que quelqu'un pourrait m'indiquer où est le problème et merçi infiniment !!
Peut être que ton programme est compilé dans un mode de deboguage?
et donc l execution est censée se faire à travers l interface de ton environnement de developpement?
Fin de partie est ce que tu peux detailler un peu plus ce que tu viens de me proposer tout à l'heure, j'ai jamais tester de programmes en langage C ,la seule chose que je sais faire c'est : creer un projet, le compiler et l'executer en cliquant sur l'un des quatres boutons de gauche situé sur la barre d'outils ... stp un coup de main et merçi infiniment !!
Dans la mise au point d'un programme il y a une phase de debogage,
un programme qui fonctionne qu on vient d ecrire qui fonctionne du premier coup c'est rarissime, il y a toujours une erreur.
Ce qui fait que lorsqu on compile un programme , bien souvent, le resultat c est une version de test qu on obtient et non pas la version "release", c est à dire la version distribuable.
Ce que je veux dire, c'est que dans les options de compilation de ton projet il doit y avoir surement un formulaire à cocher pour obtenir la compilation de ton programme qui ne soit pas une version de test.
Ceci dit, le cas que tu soumets je n ai jamais encore vu ca
C'est quoi le nom de ton compilateur et son environnement de developpement?
<a href=" http://upx.sourceforge.net/download/upx203w.zip"> http://upx.sourceforge.net/download/upx203w.zip</a>
Ceci est un lien sur UPX un programme open source pour compresser des executables. La version mise en lien marche en mode console.
Si tu ne parviens pas à voir les ecritures que le programme emet lorsque tu le lances cest que le probleme vient de windows et non pas de ton environnement de dev logiciel.
D'abord pour que vous ayez une idée de quoi je parle, voici un programme que j'essaie de tester sur mon pc :
#include < stdlib.h>
#include < stdio.h>
#include < SDL/SDL.h>
#include < SDL/SDL_image.h>
void pause();
//
int main(int argc, char *argv[])
{
SDL_Surface *ecran = NULL, *imageDeFond = NULL, *sapin = NULL;
SDL_Rect positionFond, positionSapin;
positionFond.x = 0;
positionFond.y = 0;
positionSapin.x = 500;
positionSapin.y = 260;
SDL_Init(SDL_INIT_VIDEO);
SDL_WM_SetIcon(IMG_Load("sdl_icone.bmp"), NULL);
ecran = SDL_SetVideoMode(800, 600, 32, SDL_HWSURFACE);
SDL_WM_SetCaption("Chargement d'images en SDL", NULL);
imageDeFond = IMG_Load("lac_en_montagne.bmp");
SDL_BlitSurface(imageDeFond, NULL, ecran, &positionFond);
/* Chargement d'un PNG avec IMG_Load
Celui-ci est automatiquement rendu transparent car les informations de
transparence sont codées à l'intérieur du fichier PNG */
sapin = IMG_Load("sapin.png");
SDL_BlitSurface(sapin, NULL, ecran, &positionSapin);
SDL_Flip(ecran);
pause();
SDL_FreeSurface(imageDeFond);
SDL_FreeSurface(sapin);
SDL_Quit();
return EXIT_SUCCESS;
}
//
void pause()
{
int continuer = 1;
SDL_Event event;
while (continuer)
{
SDL_WaitEvent(&event);
switch(event.type)
{
case SDL_QUIT:
continuer = 0;
}
}
}
//
Alors comme vous le remarquez ci-dessus, il s'agit d'un code source pour affichage d'images, et après compilation, mon executable disparait du dossier de mon projet, et dans l'onglet " Build log ", on affiche ce qui suit :
Switching to target: default
Compiling: main.c
Linking executable: testsdl.exe
mingw32-g++.exe: \Documents and Settings\Romario21\Mes documents\testsdl" -mwindows: Invalid argument
Process terminated with status 1 (0 minutes, 0 seconds)
le problème est apparu quant j'ai telechargé la librairie SDL_Image pour gérer plusieurs formats d'images : BMP,JPG,PNG,GIF... etcEst-ce que quelqu'un pourrait m'expliquer comment m'en sortir, je n'ai plus d'exécutable maintenant pour tester mon programme ... !!!
Et merci de votre aide !!!
puisque ton programmme gere des images.
Qu'il affiche peut être d'ailleurs ou du moins la library pour fonctionner impose que le programme soit un programme WINDOWS GUI
Recompile le en pour que cela soit un programme CONSOLE.
Un programme CONSOLE peut avoir une interface graphique mais un programme WINDOWS GUI n'a jamais de console si je me souviens bien. 8-)
j'ai compilé plusieurs fois sans aboutir à rien, aucune fenetre n'apparait sur l'ecran.. Avant de telecharger SDL_Image, je réussissais de temps en temps à ouvrir des fenetres et gerer les surfaces,les titres, les icones, les couleurs et tous ça, mais maintenant rien ne s'ouvre ...je dois avoir quelqu'un à coté de moi pour qu'il verifie lui meme ce qu'il y'a à l'interieur de mon pc ... c'est un grand problème maintenant, je ne sais plus d'où je vais le rammener ce "quelqu'un" :-( , je connais personne, je suis planté ... c'est pas un problème de compilation, il y'a eu peut etre un problème dedans dans les dossiers quant je plaçais les .h, .lib, .dll la première fois, et regarde le resultat de la compilation:
Switching to target: default
Compiling: main.c
Linking executable: testsdl.exe
mingw32-g++.exe: \Documents and Settings\Romario21\Mes documents\testsdl" -mwindows: Invalid argument
Process terminated with status 1 (0 minutes, 0 seconds)
il n'y'a pas d'erreurs de syntaxe ou quoi que ce soit, il y'a juste des erreurs quelque part dans les dossiers, peut etre que je l'ai est mal placés...D:\Documents and Settings\Romario21\Mes documents\testsdl c'est le lien vers mon projet..mingw32 c'est un sous dossier du dossier ou Code::Blocks est installé, et c'est là ou on place la librairie SDL ( les fichier .a .lib .h ( devellopement librairie ) )... mingw32-g++.exe : j'ai cherché partout dans ces dossiers, c'est introuvable...
ça t'inspire rien ça ? :
Linking executable: testsdl.exe
mingw32-g++.exe: \Documents and Settings\Romario21\Mes documents\testsdl" -mwindows: Invalid argument.
c'est le resultat de la compilation.
testsdl.exe : c'est l'executable qui a disparu du dossier de mon projet, c'est la console ... c'est pourquoi la console maintenant ne reapparait plus ..
Pour te rassurer, mon programme est en mode "console application", et non en mode "Gui application" comme tu viens me dire, dans les deux cas aucune fenetre n'apparait sur mon ecran...
#include <stdio.h>
#include < stdlib.h>
void main(void)
{
printf("ceci est un texte\n");
}
pour voir si le texte s'affiche dans une console?
et dans le projet créé, par defaut le main.cpp proposé est le suivant:
#include <iostream>
int main()
{
std::cout << "Hello world!" << std::endl;
return 0;
}
J ai compile le projet et j ai obtenu un fichier binaire executable qui fonctionne correctement. Lorsque j'ouvre une console et que je l'execute, il affiche "hello world!" dans la console deja ouverte.
Je me demande donc si le probleme rencontré est vraiment lié au compilateur.
Cette environnement de dev a l air bien et il est dispo sur linux egalement.