0

我尝试使用 OutputDebugString 函数发送调试消息。我在我的 dll 项目中使用此函数,并在 DebugView 中收到此消息。我也在我的控制台应用程序项目(相同的解决方案)中使用此功能,但我无法收到消息。除控制台应用程序外,所有消息都出现在 DebugView 中。它甚至没有出现简单OutputDebugStringA("debug");OutputDebugString(L"debug");代码。它会导致什么?

4

1 回答 1

0

一个问题是,无论您是在 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/

于 2016-12-05T05:44:44.433 回答