将 stdout 从本机 c++ 重定向到 Visual Studio 输出窗口动态链接库

发布于 2024-09-24 04:54:08 字数 201 浏览 7 评论 0原文

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

I have a c# windows app that calls a managed c++ dll, which, in turn, calls a native c++ dll. There seem to be some performance issues in the native c++ code, so I'm doing some simple profiling. I'd like to dump the results of the profiling so that the Visual Studio output window picks it up. I thought that printf would do the trick, but nothing shows up in either the Output window or the Immediate window. I also tried fprintf, but that doesn't work either.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

橙幽之幻 2024-10-01 04:54:08

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

Try OutputDebugString

OutputDebugString is rather plain, so I tend to add the following to my projects to make it function like printf (making sure to avoid overrunning the buffer size):

#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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文