9

我在Visual Studio 2010中启动了一个空白项目来编写 C 应用程序。如何将调试信息发送到输出窗口(菜单Debug -> Windows -> Output)?有没有相对简单的方法来实现TRACEOutputDebugString类似的东西?

4

3 回答 3

8

您可以OutputDebugString从 VS C 程序中使用。

#include <windows.h>

int _tmain(int argc, _TCHAR* argv[])
{
    OutputDebugString(_T("Hello World\n"));
    return 0;
}

仅当您使用调试运行时输出才可见(调试 > 开始调试)

在“输出”窗口中,为“显示输出自:”选择“调试”

于 2012-03-02T21:34:10.840 回答
7

OutputDebugString是这样做的方法。Stack Overflow 问题如何在非 MFC 项目中使用 TRACE 宏?包含如何TRACE使用OutputDebugString. _

于 2012-03-02T21:34:57.097 回答
3

如果您使用 C++,您可能会对我的可移植 TRACE 宏感兴趣。

#ifdef ENABLE_TRACE
#  ifdef _MSC_VER
#    include <windows.h>
#    include <sstream>
#    define TRACE(x)                           \
     do {  std::ostringstream s;  s << x;      \
           OutputDebugString(s.str().c_str()); \
        } while(0)
#  else
#    include <iostream>
#    define TRACE(x)  std::cerr << x << std::flush
#  endif
#else
#  define TRACE(x)
#endif

例子:

#define ENABLE_TRACE  //can depend on _DEBUG or NDEBUG macros
#include "my_above_trace_header.h"

int main (void)
{
   int     i = 123;
   double  d = 456.789;
   TRACE ("main() i="<< i <<" d="<< d <<'\n');
}

欢迎任何改进/建议/贡献;-)

于 2013-01-30T16:33:57.403 回答