我在哪里可以看到mfc应用程序中的printf输出?

时间:2010-06-29 19:54:30

标签: c++ visual-studio debugging mfc

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

我可以在调试器中查看“控制台”窗口吗?

(Visual Studio C ++ 6.0)

感谢。

3 个答案:

答案 0 :(得分:2)

我曾经使用TRACE系列宏 TRACE0TRACE1,等等 它们的行为类似于printf。 0,1,2,...等足以指定宏可以采用的参数个数(printf使用va_list开放数量的参数)

答案 1 :(得分:2)

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

使用单独的应用程序的优点是,您可以将多个应用程序的调试输出序列化到一个窗口中,这对于调试某些场景非常方便。

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

答案 2 :(得分: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。)