我尝试使用OutputDebugString函数发送调试消息。我在我的dll项目中使用此函数,我在DebugView中收到此消息。我也在我的控制台应用程序项目中使用此功能(相同的解决方案)但我无法获取消息。除控制台应用程序外,所有消息都显示在DebugView中。它甚至不会出现简单的OutputDebugStringA("debug");
或OutputDebugString(L"debug");
代码。它会导致什么?
答案 0 :(得分:0)
一个问题是,无论是在VS输出窗口中访问它还是在DebugView中访问它:https://technet.microsoft.com/en-us/sysinternals/bb896647?f=255&MSPPError=-2147217396。他们是不同的。
如果您使用Debug视图,而不是调试您的应用程序,只需使用“start without debugging(Ctrl + F5)”运行它。
如果您使用VS输出窗口和其他应用程序正常输出,只是特定的控制台应用程序有此问题,我不认为它与调试工具有关,我们会考虑项目本身或VS设置。< / p>
(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/