2010-06-30 6 views
0

Lors du développement d'une application Win32 (application non-console) dans Visual Studio 2005, existe-t-il un moyen d'obtenir le même type de sortie que vous le faites depuis la console? Par exemple, disons que je veux voir les instructions de log (comme je le ferais avec cout dans une application console) pour tracer le chemin que mon programme a pris dans le code.Sortie de console d'application Win32?

Ma première pensée serait que cela pourrait se faire à travers l'onglet Sortie sélectionner quelque chose de son « Afficher sortie: » menu déroulant, lors du débogage, mais je ne sais pas ce que l'API que je dois faire ...

alt text

Par exemple que j'ai eu ce qui suit dans mon application windows et je voulais savoir quand la fonction suivante entre et sort d'écriture le résultat à la fenêtre Visual studio ci-dessus.

void someFunction(void) 
{ 
    Win32APIConsoleLog("BEGIN: someFunction()"); 
    // ... 
    Win32APIConsoleLog("END: someFunction()"); 
} 

Est-ce possible? Et si oui, quelles bibliothèques dois-je inclure et quels appels de fonctions dois-je faire pour écrire dans la fenêtre de la console?

+0

Juste pour préciser: Vous voulez écrire sur la console dans Visual Studio, et non pas l'invite de commande (fenêtre de console séparée avec l'arrière-plan noir), correct? –

Répondre

4

OutputDebugString. Je suppose que vous voulez écrire sur la console de débogage, puisque c'est ce que montre votre capture d'écran. OutputDebugString est un nop quand aucun débogueur n'est attaché, mais il vous permet d'enregistrer ce que vous voulez dans la sortie du débogueur.

+0

OutputDebugString est une API normale et il est pas un NOP sans un débogueur, une application usermode peut voir la sortie (Sysinternals DebugView etc) – Anders

+0

@Anders, vrai, mais vous devez demander spécialement. Ce n'est pas la même chose que la sortie de la console, même si le lecteur n'a pas besoin d'être un débogueur. –

+0

@Anders Qu'est-ce que NOP? – leeand00