我尝试使用 OutputDebugString 函数发送调试消息。我在我的 dll 项目中使用此函数,并在 DebugView 中收到此消息。我也在我的控制台应用程序项目(相同的解决方案)中使用此功能,但我无法收到消息。除控制台应用程序外,所有消息都出现在 DebugView 中。它甚至没有出现简单OutputDebugStringA("debug");
或OutputDebugString(L"debug");
代码。它会导致什么?
1 回答
一个问题是,无论您是在 VS 输出窗口还是在此处的工具 DebugView 中访问它:https ://technet.microsoft.com/en-us/sysinternals/bb896647?f=255&MSPPError=-2147217396 。它们不一样。
如果您使用 Debug 视图,而不是调试您的应用程序,只需使用“start without debugging(Ctrl+F5)”运行它。
如果你使用VS输出窗口和其他app正常输出,只是具体的console app有这个问题,我觉得和调试工具无关,我们会考虑项目本身或者VS设置。
(1)请在代码行“OutputDebugString(L"debug");”中设置断点,然后使用“F5”调试你的应用程序,断点命中后点击“Step Into (F11)”,然后访问您的调试输出窗口。也许您这边没有调用特定的行代码。
(2)由于同一个解决方案中有不同的项目,请将此控制台应用程序设置为启动项目。或者你可以为这个项目创建一个解决方案,再次调试它。至少,我们可以知道其他项目是否会影响这个特定的控制台应用程序。
(3) 在其他 VS IDE 中测试一下,确定不是 VS IDE 的问题。我只是在我这边使用默认的 VS 设置,效果很好。
参考:
https://blogs.msdn.microsoft.com/reiley/2011/07/29/a-debugging-approach-to-outputdebugstring/