Debugging Win32应用程序控制台输出?

Debugging Win32应用程序控制台输出?,debugging,visual-studio-2005,winapi,console,trace,Debugging,Visual Studio 2005,Winapi,Console,Trace,在VisualStudio2005中开发Win32应用程序(非控制台应用程序)时,是否有任何方法可以获得与控制台相同的输出类型 例如,假设我希望看到日志语句(比如在控制台应用程序中使用cout)来跟踪我的程序在代码中的路径 我的第一个想法是,在调试时,可以通过Output选项卡从“ShowOutput from:”下拉列表中选择一些内容来完成,但我不知道我需要什么API来完成这项工作 例如,假设我的windows应用程序中有以下内容,并且想知道以下函数何时进入和退出,并将结果写入上面的Visu

在VisualStudio2005中开发Win32应用程序(非控制台应用程序)时,是否有任何方法可以获得与控制台相同的输出类型

例如,假设我希望看到日志语句(比如在控制台应用程序中使用cout)来跟踪我的程序在代码中的路径

我的第一个想法是,在调试时,可以通过Output选项卡从“ShowOutput from:”下拉列表中选择一些内容来完成,但我不知道我需要什么API来完成这项工作

例如,假设我的windows应用程序中有以下内容,并且想知道以下函数何时进入和退出,并将结果写入上面的Visual Studio窗口

void someFunction(void)
{
   Win32APIConsoleLog("BEGIN: someFunction()");
   // ...
   Win32APIConsoleLog("END: someFunction()");
}
这可能吗?如果是这样,我需要包含哪些库,以及需要进行哪些函数调用才能写入控制台窗口?

我假设您希望写入调试控制台,因为这是您的屏幕截图显示的内容
OutputDebugString
在未连接调试器时是nop,但它允许您将任何需要的内容记录到调试器的输出中

OutputDebugStringW(L"This will go to the output.\n");

// or

OutputDebugString("This will go to the output.\n");

我假设您希望写入调试控制台,因为这是您的屏幕截图显示的内容
OutputDebugString
在未连接调试器时是nop,但它允许您将任何需要的内容记录到调试器的输出中

OutputDebugStringW(L"This will go to the output.\n");

// or

OutputDebugString("This will go to the output.\n");

只是为了澄清:您想要写入Visual Studio中的控制台,而不是命令提示符(黑色背景的单独控制台窗口),对吗?只是为了澄清:您想要写入Visual Studio中的控制台,而不是命令提示符(黑色背景的单独控制台窗口),正确吗?OutputDebugString是一个普通的API,它不是一个没有调试器的NOP,任何usermode应用程序都可以看到输出(Sysinternals DebugView等)@Anders,是的,但你必须特别要求它。它与控制台输出不同,尽管读取器实际上不必是调试器。如果没有调试器(或debugview)正在侦听,则调用为NOPOutputDebugString是一个普通API,没有调试器也不是NOP,任何用户模式应用程序都可以看到输出(Sysinternals debugview等)@Anders,true,但你得特别要求。它与控制台输出不同,尽管读取器实际上不必是调试器。如果没有调试器(或debugview)正在侦听,则调用为NOP