我有一个调用托管 C++ dll 的 C# Windows 应用程序,后者又调用 native C++ DLL。 native c++ 代码似乎存在一些性能问题,因此我正在做一些简单的分析。我想转储分析结果,以便 Visual Studio 输出窗口获取它。我认为 printf
可以解决问题,但“输出”窗口或“立即”窗口中都没有显示任何内容。我还尝试了 fprintf
,但这也不起作用。
最佳答案
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
关于c++ - 从 native c++ dll 将 stdout 重定向到 Visual Studio 输出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3762357/