0

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

+1

听起来会很容易为你提供一个[MCVE] –

+0

我不知道你的意思。你期望调试输出出现在控制台窗口中吗?它不会。为此,使用'std :: cout <<“message”;'。 –

+0

@Burak Kocaman,有没有更新?你能分享我们关于这个问题的最新信息吗? –

回答

0

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

如果您使用调试视图,无法调试您的应用程序,只是用“不开始调试(按Ctrl + F5)”来运行它。 enter image description here

如果使用VS输出窗口和其他应用程序输出正常,只是具体的控制台应用程序有这个问题,我不认为这是关系到调试工具,我们会考虑项目本身或VS设置。 (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/

相关问题