6
votes

Débogage C ++ / SDL avec fenêtre de la console

Je joue avec un peuplegl, en utilisant SDL pour gérer la fenêtre / l'entrée, etc., je présente actuellement des informations que je souhaite voir à un HUD. Eh bien, cela devient trop lourd et je me demandais s'il existe un moyen simple d'ouvrir une fenêtre de console distincte pour signaler cette information. Je suis toujours nouveau à C ++ alors allez-vous facilement sur moi si cela est évident.


0 commentaires

3 Réponses :


0
votes

Si vous utilisez une ligne de commande et utilisez printf () Vous devez voir les messages déconnectés dans votre fenêtre de terminal. Sinon, vous pouvez vous connecter à un fichier et utiliser queue -f On * Nix Style Boxes pour afficher la sortie tel qu'il apparaît.

Quel environnement utilisez-vous? La plupart des IDES afficheront également cette sortie dans leurs fenêtres de sortie de débogage.


2 commentaires

Comment créerais-je cette fenêtre de console? Actuellement, je travaille avec une fenêtre générée par SDL.


Sur quelle plate-forme travaillez-vous? Si c'est Windows, il suffit d'exécuter cmd.exe et d'exécuter votre programme à partir de là, sur un terminal d'utilisation Mac ou sur Linux n'importe quel terminal de votre choix.



4
votes

dans linker -> Système dans les propriétés de votre projet, vérifiez que le sous-système est "Console (/ Subsystème: console)". Cela provoque l'élevée d'une fenêtre de console séparée lorsque vous exécutez votre programme. Si votre point d'entrée actuel n'est pas principal , vous devrez alors la modifier à cela si vous faites cela si vous le faites.


3 commentaires

Comment cela s'applique-t-il si je, par exemple, code mon application dans un éditeur de texte, puis créer une exécutable via Cumake?


@Speldosa: Vous devez trouver l'option Cumake qui vous permet de passer des drapeaux de liaison, puis de passer "/ Subsystème: console" sur la lieur.


SET_TARGET_PROPERTES (Propriétés YOUCHPLICATION Link_Flags "/ Subsystème: console") ou faire: SET (CUKE_EXE_Linker_FLAGS "/ Sous-système: console") en tant que paramètre global.



6
votes

Le code suivant est pour Windows. Je trouve toujours utile de garder la capacité de créer une fenêtre de console à la demande: xxx

Ce code suppose que le hwnd est dans une variable appelée m_hwnd ; Il est copié à partir d'une enveloppe de classe que j'utilise. Comment obtenez-vous le hwnd à partir de SDL est à vous, cependant.

Pour libérer la console, appelez ceci: xxx

alloconsole et freeconsole sont des fonctions d'API Win32.


0 commentaires