【问题标题】:How to filter debug output window on visual studio?如何过滤 Visual Studio 上的调试输出窗口?
【发布时间】:2021-05-16 12:50:44
【问题描述】:

如何删除或过滤此类消息?

这很烦人,一直显示我不明白为什么。 我正在使用 Visual Studio 2019 C++。

看完这行代码: MessageBox(g_hWnd, string.data(), L"", MB_OK | MB_ICONSTOP | MB_SETFOREGROUND | MB_APPLMODAL | MB_TOPMOST);

消息总是显示:

windows\dwm\dwmapi\attribute.cpp(105)\dwmapi.dll!00007FFBE41B1940: (caller: 000000018000E820) LogHr(1) tid(83b8) 80070006 Identificador inválido.

但如果我删除 MB_ICONSTOP 并仅使用: MessageBox(g_hWnd, string.data(), L"", MB_OK | MB_SETFOREGROUND | MB_APPLMODAL | MB_TOPMOST);它不显示。

它也被其他我不知道的东西显示出来。

一些谷歌: https://social.msdn.microsoft.com/Forums/en-US/3a5a145a-c13d-4898-bb61-a5baadc9332f/why-am-i-getting-hundreds-of-weird-messages-in-debug-output-window?forum=vcgeneral

https://developercommunity.visualstudio.com/content/problem/258494/windowsdwmdwmapiattributecpp92dwmapidll72ed3cf4-ca.html

【问题讨论】:

  • social.msdn.microsoft.com/Forums/en-US/… 但是这条消息没有任何帮助。
  • 不确定您能做些什么,许多调试构建二进制文件记录冗长,以防万一有用,因为它们不提供源代码。
  • 您也应该将错误消息作为文本发布...
  • 该消息何时显示? (安装 windows,安装 Visual Studio,构建项目,我猜是这样的?
  • 我添加了更多信息。

标签: c++ visual-studio visual-studio-2019


【解决方案1】:

这是XY Problem 的示例,也讨论了here。与其试图阻止消息被显示,不如从一开始就阻止它们生成。

从您发布的链接来看,这个问题已经存在了几年,并且困扰了很多人。幸运的是,您的第一个链接似乎有一个解决方法:用户“codeviewer”的帖子列出了一个名为 suppress_dwmapi_output() 的函数,当它添加到您的代码并从 InitInstance() 调用时,显然会阻止创建这些消息。

免责声明:我自己没有尝试过。

【讨论】:

  • 我已经尝试过suppress_dwmapi_output() 的示例,消息仍然出现在输出中。
  • @Guto 在您的问题中可能值得一说。 :-)
  • @Guto - 你为什么不研究错误?为什么不在 caller: 000000018000E820 上设置 bp 并查看 - 哪个窗口句柄传递给 DwmGetWindowAttribute
  • @RbMm 你的回答让我搜索更多关于DwmGetWindowAttribute 的信息我如何奖励你赏金?
  • @Guto 如果说的是真的 - 我不清楚只有 #include <Dwmapi.h> 如何改变结果。二进制有什么变化?您没有找到 - 为什么会出现此错误以及为什么会消失
【解决方案2】:

我已经添加了#include <Dwmapi.h>,现在它不再在调试控制台中发送垃圾邮件了。

https://docs.microsoft.com/en-us/windows/win32/api/dwmapi/nf-dwmapi-dwmgetwindowattribute

认为错误是因为它没有加载库dwamip.dll

【讨论】:

  • 不,dwamip.dll 中的 DwmGetWindowAttribute 并使用您查看的消息调用 OutputDebugString。所以这个dll在所有情况下都被加载了。然后简单地包含头文件 - 不强制加载任何 dll 并且通常根本没有任何影响(如果在此编译器错误之前没有)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-06
  • 1970-01-01
  • 2020-11-09
相关资源
最近更新 更多