OutputDebugString函数不在我的控制台应用程序

时间:2016-12-03 12:34:10

标签: c++ debugging visual-c++ visual-studio-2015 outputdebugstring

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

1 个答案:

答案 0 :(得分:0)

一个问题是,无论是在VS输出窗口中访问它还是在DebugView中访问它:https://technet.microsoft.com/en-us/sysinternals/bb896647?f=255&MSPPError=-2147217396。他们是不同的。

如果您使用Debug视图,而不是调试您的应用程序,只需使用“start without debugging(Ctrl + F5)”运行它。 enter image description here

如果您使用VS输出窗口和其他应用程序正常输出,只是特定的控制台应用程序有此问题,我不认为它与调试工具有关,我们会考虑项目本身或VS设置。< / p>

(1)请在代码行“OutputDebugString(L”debug“);”中设置一个断点,然后使用“F5”调试你的应用程序,在点击断点后,点击“Step Into(F11)”,然后访问您的调试输出窗口。也许你的身边没有调用特定的行代码。

(2)由于同一解决方案中有不同的项目,请将此控制台应用程序设置为启动项目。或者您可以为此项目创建单个解决方案,再次进行调试。至少,我们可以知道其他项目是否会影响这个特定的控制台应用程序。

(3)只需在其他VS IDE中测试它,确保它不是VS IDE问题。我只是在我身边使用默认的VS设置,效果很好。

enter image description here

参考:

https://blogs.msdn.microsoft.com/reiley/2011/07/29/a-debugging-approach-to-outputdebugstring/