Bonjour,
J'aimerais savoir s'il est possible d'utiliser la console avec un programme graphique en SDL, pour pouvoir passer des données à ce programme.
Si oui, comment faire ?
merci.
Bonjour,
J'aimerais savoir s'il est possible d'utiliser la console avec un programme graphique en SDL, pour pouvoir passer des données à ce programme.
Si oui, comment faire ?
merci.
Bonjour,
Oui, tu peux faire en sorte d'avoir SDL et Console en meme temps.
http://www.developpez.net/forums/d71...le-meme-temps/
Reviens si la solution ne marche pas. (Et surtout, apres avoir cherché un minimum).
La recherche c'est déjà fait (comme toujours avant de poser une question).
"Pour afficher la console, c'est une option dans les projets de ton EDI."
justement, quelle est cette option dans code::blocks, je n'ai rien trouvé.
Merci.
dans les propriétés de ton projet -> build targets -> type
Tu as "console application"
SPARK
Moteur de particule C++ opensource avec modules de rendu OpenGL, Irrlicht et SFML
Pour le lien, je pensais plutot a cette reponse :
Si vous avez fait la recherche, pourquoi ne pas avoir mis en œuvre cette solution ?sous windows pour avoir la console avec SDL il faut faire des commandes/préprocessing spéciales SDL il me semble, sinon moi je l'ai en commentant la ligne #include <SDLmain.h> dans SDL.h et en ne linkant pas avec SDLmain mais que avec SDL (windows xp et vista)
Sil elle ne marchait pas, pourquoi ne pas l'avoir signaler ?
"J'ai fait des recherche et j'ai trouve différente solution. Parmi elle, on me demander de faire ceci :
je l'ai en commentant la ligne #include <SDLmain.h> dans SDL.h et en ne linkant pas avec SDLmain mais que avec SDL (windows xp et vista)
Cependant, cela ne marche pas. Comment faire , bla bla bla"
Bref, c'est pas la mer a boire et ca evite qu'on vous prenne pour des gens cherchant la facilité, gens auquel on repond pas ou avec des liens.
Parce que pour moi la solution c'était l'option de l'IDE.
Et que je n'ai pas compris la réponse suivante vue que ça fait 1an que j'ai pas fait de C et de SDL.
La méthode de Fifron m'affiche bien une console mais je ne peux rien afficher dedans avec des printf.
Je suppose donc qu'il faut que je fasse les manipulations que tu as cité ?
Si oui alors comment linker avec SDL et pas SDLmain ?
J'aurais bien fait remonter le topic mais il est déjà en haut
C'est triste de voir le peu d'activité sur la section SDL
Ne critiquons pas la section SDL, car personne ne répond à votre sujet.
SofEvans c'est interessé à votre cas, ce qui est déjà bien, vu qu'il apporte les bonnes réponses.
Par contre, dans les options de l'IDE, c'est bien dommage que je n'ai pas Code::Blocks sous la main, car ça doit être un truc comme: menu Projet > Options du projet > Application console ( un truc à selectionner ).
Après pour les printf ... je ne sais plus pourquoi ça fait ça.
Normalement, dans un projet SDL, on link avec trois bibliothèques ( de mémoire, sdl , sdlmain et je sais plus l'autre ( à moins que ça soit sdl_image, mais pas de rapport ) ).
Bref, dans les options de compilation on peut changer ceci, afin de retirer ou d'ajouter des bibliothèques.
( Menu Projet > un truc qui s'apelle build ou compilation ).
J'oserai aussi dire, êtes vous sur que votre printf est executé .
Et finalement, souvent les sorties de la SDL vont dans des fichiers ( temporaires ? ) appelée stdout et stderr. Regardez si vos messages ne serez pas là par hasard.
Dans ce cas, je pense que la méthode d'enlever le
#include <sdl_main.h> et sdl_main dans les bibliothèques à compiler, est une bonne chose.
Pour la première partie, il faut juste rajouter // devant #include <SDLmain.h> dans le fichier SDL.h.
Vous pouvez trouver le fichier avec une recherche de fichier, et la ligne avec une recherche du mot clé, dans le fichier.
Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi
Ma page sur DVP
Mon Portfolio
Qui connaît l'erreur, connaît la solution.
Ow, je viens de voir le post ...
Je tombe de haut ...
Auriez vous oubliez que nous avons une vie aussi ?
Bref, pour le prinft, sous Code::Block avec SDL, il est redirige dans un fichier standart "stdout". Faite une recherche dans votre repertoire de travail si vous ne le trouvez pas.
N'oubliez pas non plus qu'un printf n'est pas flushé tout de suite a moins d'avoir mis un '\n'.
Pour avoir la console ET la fenetre, je vais essayer de le faire, mais ce n'est pas dit que je trouve. Alors soyez patient ! Et chercher de votre coté !
Je ne critique pas, je constate seulement que depuis que j'ai posté il n'y a pas eu d'autres messages.
Ben oui, ai-je dis le contraire ?
Moi j'ai fait clique droit sur le projet->propriétés->onglet build targets->dans type j'ai choisis "console application"
Projet->build options->onglet linker settings et c'est vide, faut-il que je rajoute quelque chose ?
Oui pas de raison qu'il ne le soit pas
J'ai bien un stdout.txt avec mes printf, c'est donc redirigé vers la sortie standard et non pas la console.
J'avais déjà fais cette manipulation, mais ça ne change rien.
Sauf que moi dans le SDL.h c'est #include "SDLmain.h" (ce qui semble plus logique)
Ah bon pourquoi ?
Ben non, j'ai dit quelque chose qu'il ne fallait pas ?
Oui c'est bien le cas comme je l'ai dis plus haut.
Merci pour vos recherche, je cherche également de mon côté.
Ce serait quand même étrange qu'on ne puisse pas avoir la console avec SDL
[QUOTE]Projet->build options->onglet linker settings et c'est vide, faut-il que je rajoute quelque chose ?[QUOTE]
Vérifiez bien ... car sur la gauche, vous avez la liste des projets ( souvent qu'un ) avec une entrée pour le debug, est une entrée pour le release. Par défault il selectionne le mode de compilation courant, mais comme on peut mettre des options pour le projet global ( ce qui est surement fait ) vous trouverez une liste pleine, dans la partie du projet global.
Un code pas executé, il peut avoir plein de raison ... Simple double check :p
[QUOTE]Sauf que moi dans le SDL.h c'est #include "SDLmain.h" (ce qui semble plus logique)[QUOTE]
Veuillez m'excuser pour mes erreurs. Je n'ai pas vérifié la logique.
Soit je comprends pas ce que vous dites ... soit je suis vraiment idiot.
Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi
Ma page sur DVP
Mon Portfolio
Qui connaît l'erreur, connaît la solution.
Salutations
j'ai été confronté au même problème que toi , et mon ami a trouvé une solution pour avoir la console , tu ajoutes seulement après le main():
freopen("CON", "w", stdout);
freopen("CON", "r", stdin);
freopen("CON", "w", stderr);
voila je viens de tester ça marche bien chez moi ( je peux faire des printf scanf dans la console )
voila j'espère que ça répond à ta question =)
ahh oui je voulais juste préciser que je programme avec code::blocks.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager