Win32应用程序控制台输出?

问题描述:

在Visual Studio 2005中开发Win32应用程序(非控制台应用程序)时,是否有任何方法可以像从控制台那样获得相同类型的输出?Win32应用程序控制台输出?

例如,假设我想查看日志语句(例如我将在控制台应用程序中使用cout)来跟踪我的程序在代码中执行的路径。

我首先想到的是,这可以通过输出选项卡中选择从它的“显示输出:”东西做下拉菜单,在调试的时候,但我不知道是什么API,我需要做到这一点...

alt text

例如说,我在我的windows应用程序下面,想知道什么时候下面的函数进入和退出将结果写到上面的Visual Studio的窗口。

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

这可能吗?如果是这样,我需要包含哪些库,以及我需要写出哪些函数调用来写入控制台窗口?

+0

只是为了澄清:您想在Visual Studio中写入控制台,而不是命令提示符(具有黑色背景的单独控制台窗口),是否正确? – 2010-06-30 13:21:12

OutputDebugString

我假设你想写入调试控制台,因为这是你的屏幕截图显示的内容。 OutputDebugString在没有连接调试器的情况下是一个nop,但它允许您将任何想要的内容记录到调试器的输出中。

+0

OutputDebugString是一个普通的API,它不是一个没有调试器的NOP,任何用户模式的应用程序都可以看到输出(Sysinternals DebugView等) – Anders 2010-06-30 13:45:32

+0

@Anders,是的,但你必须特别要求。它和控制台的输出不一样,尽管读者并不需要真正的调试器。 – 2010-06-30 14:00:50

+0

@Anders什么是NOP? – leeand00 2010-06-30 14:33:06