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

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

我有一个调用托管 C++ dll 的 C# Windows 应用程序,后者又调用 native C++ DLL。 native c++ 代码似乎存在一些性能问题,因此我正在做一些简单的分析。我想转储分析结果,以便 Visual Studio 输出窗口获取它。我认为 printf 可以解决问题,但“输出”窗口或“立即”窗口中都没有显示任何内容。我还尝试了 fprintf,但这也不起作用。

最佳答案

尝试 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

关于c++ - 从 native c++ dll 将 stdout 重定向到 Visual Studio 输出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3762357/

相关文章:

c++ - CUDA 5.5 nvlink undefined reference (继承)

c++ - RAII 应该导致内存泄漏吗?

.net - 在 Visual Studio 中构建时有条件地使用 32/64 位引用

visual-studio - Visual Studio行删除

java - 是否可以将 Visual Studio 用作 Google Web Toolkit 的 IDE?

c++ - 如何将预建库添加到 VC++ 解决方案中?

c++ - C++ 中通用项目的容器需要帮助

c++ - 什么是 type* volatile* name = value?

c++ - 函数参数中的 Typedef 等价

c++ - VC++生成*.dll后*.lib在哪里?