如何在 visual studio 上过滤调试输出 window?

How to filter debug output window on visual studio?

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

这很烦人,一直显示,我不明白为什么。 我正在使用 visual studio 2019 c++。

Is safer to exit and terminate or stuck the code in a "fake" while loop?
When x condition doesn't meet i will

看完这行代码后: 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);不显示

其他我不知道的东西也显示出来了

一些google: 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

这是一个 XY Problem, also discussed here 的例子。与其试图阻止消息显示,不如首先阻止它们生成。

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

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

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

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

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