Capturer la sortie de la console pour le débogage dans VS?
Sous VS externe de paramètres des outils il y a un "Utilisation de la Fenêtre de Sortie" case à cocher qui capture les outils de ligne de commande de sortie et la déverse VS onglet.
La question est: puis-je obtenir le même traitement pour mon programme, quand j'appuie sur F5?
Edit: FWIW, je suis en C#, mais si cela fait une différence pour votre réponse, alors il est peu probable que votre réponse est ce que je suis à la recherche d'.
Ce que je veux prendrait le flux de sortie du programme et de les transférer à l'onglet sortie VS, en utilisant les mêmes équipements que la redirection de la sortie ('|' et '>") utilise dans l'invite de cmd.
source d'informationauteur BCS
Vous devez vous connecter pour publier un commentaire.
Je vais faire quelques suppositions. Tout d'abord, je présume que vous parlez printf sortie à partir d'une application (que ce soit à partir d'une application console ou à partir d'une interface graphique windows app). Ma deuxième hypothèse est que le langage C.
À ma connaissance, vous ne pouvez pas direct printf sortie de la fenêtre de sortie en dev studio, pas directement en tout cas. [italiques ajoutés par l'OP]
Il y a peut être un moyen mais je ne suis pas au courant. Une chose que vous pourriez faire serait de diriger printf appels de fonction à votre propre routine qui
Vous peut faire plusieurs choses à accomplir ce but. La première serait d'écrire votre propre fonction printf, puis appel de printf et le OuputDebugString()
Le code ci-dessus est la plupart du temps pas testé, mais il doit obtenir l'concepts à travers.
Si vous ne le faites pas en C/C++, cette méthode ne fonctionnera pas pour vous. 🙂
Vous devriez être en mesure de capturer la sortie dans un fichier texte et les utiliser.
Je n'ai pas de VS à portée de main, c'est donc à partir de la mémoire:
> output.txt
"Si les choses fonctionnent de la manière dont je me souviens, il va rediriger STDOUT vers un fichier, même si vous n'êtes pas réellement en cours d'exécution en vertu de l'CMD.EXE.
(Le débogueur a sa propre mise en œuvre de la redirection de la syntaxe, ce qui n'est pas à 100% la même que cmd, mais il est assez bon.)
Maintenant, si vous ouvrez ce fichier dans VS, vous pouvez encore voir la sortie de dans VS, bien que n'étant pas exactement dans la même fenêtre que vous espériez.
La console peut rediriger la sortie textwriter. Si vous implémentez un textwriter qui écrit pour le Diagnostic.Débogage, vous êtes tous ensemble.
Voici un textwriter qui écrit dans le débogueur.
Car il utilise des Diagnostics.Le débogage adhèrent à vos paramètres du compilateur qu'il doit écrire toute sortie ou pas. Cette sortie peut également être vu dans Sysinternals DebugView.
Voici comment l'utiliser:
Si vous voulez voir la sortie de Sysinternals DebugView lorsque vous êtes compilation en mode Release, vous pouvez utiliser un TextWriter qui écrit à la OutputDebugString API. Il pourrait ressembler à ceci: