2010-06-29 95 views
2

在调试过程中,我可以在哪里看到mfc应用程序中的printf输出?我在哪里可以看到mfc applcation中的printf输出?

是否有一个“控制台”窗口,我可以在调试器中查看?

(Visual Studio C++ 6.0)

谢谢。

+4

http://stackoverflow.com/questions/3009042/how-to-view-printf-output-in-win32-app-on-visual-studio-2010 – 2010-06-29 19:55:33

+0

真的?好,谢谢.... – 2010-06-29 20:26:49

回答

2

如果使用API​​ OutputDebugString,则您输出的字符串将显示在Visual C输出窗口(在调试模式下)。在发布模式下,您需要一个单独的应用程序来捕获它们,例如DBWIN32.EXE

使用单独应用程序的优点是可以从多个应用程序获取调试输出,并将其串行化到单个窗口中,这可以是非常方便调试一些场景。

当然,缺点是你可以从其他应用程序获得调试输出(与你自己无关),因为他们忘记在发布版本中标记出他们的调试。 TRACE会自动执行此操作,但当然可能会出现您希望在发布版本中获得输出的情况。我更愿意负责,所以我将wsprintf/sprintf放入一个字符串中,使用OutputDebugString,并为我自己保留该控件。

2

我用宏 TRACE0TRACE1的TRACE家庭,...等 它的行为中的printf。 0,1,2,...等足以指定宏可以采用的参数数量(printf使用va_list打开的参数数量)

0

这是它是如何做:

// for OutputDebugString 
#include "Windows.h" 

// ... 

// fill in the message 
char message[2000]; 

// fill in the variables 
int var1 = ...; 
int var2 = ...; 

// fill in the message string and output it 
sprintf(message, "... format %d,%d", var1, var2); 
OutputDebugString((LPCSTR)message); 

它应该出现在输出窗口。 (它需要投入LPCSTR。)

相关问题