从本机c ++ dll将stdout重定向到Visual Studio输出窗口

时间:2010-09-21 16:24:11

标签: c++ visual-studio visual-c++ c++-cli stdout

我有一个c#windows应用程序,它调用托管c ++ dll,而后者又调用本机c ++ dll。在本机c ++代码中似乎存在一些性能问题,所以我正在进行一些简单的分析。我想转储分析的结果,以便Visual Studio输出窗口选择它。我认为printf可以解决这个问题,但是在“输出”窗口或“立即”窗口中都没有显示任何内容。我也试过fprintf,但这也不起作用。

1 个答案:

答案 0 :(得分:7)

尝试OutputDebugString

OutputDebugString相当简单,所以我倾向于将以下内容添加到我的项目中,使其像printf一样运行(确保避免超出缓冲区大小):

#if (_VERBOSE)
void DebugPrintf (LPTSTR lpFormat, ...)
{
    TCHAR szBuf[1024];
    va_list marker;

    va_start( marker, lpFormat );
    _vstprintf( szBuf, lpFormat, marker );
    OutputDebugString( szBuf );
    va_end( marker );
}
#endif