我想知道是否可以绕过OutputDebugString?我想在DebugView中显示OutputDebugString输出,而不是在内部Delphi事件查看器窗口中显示。但我找不到告诉Delphi不要吞下OutputDebugString的方法。有什么想法吗?
问候
答案 0 :(得分:3)
这是不可能的。
OutputDebugString将字符串发送到调试器(顾名思义)。每个进程只能有一个活动调试器。你在Delphi下运行你的应用程序 - Delphi得到了消息,因为它是一个调试器。您在Delphi外部运行应用程序 - DebugView可以访问它们,因为没有调试器声明它。
然而:为什么你需要这个吗?只需在Delphi事件日志中禁用其他类型的事件 - 您将获得与DebugView相同的功能。
答案 1 :(得分:1)
我认为没有办法解决这个问题。 Delphi 2009 中的情况仍然相同。您应该提交功能请求:http://qc.embarcadero.com
我想知道Delphi的内部事件日志窗口的优势应该是什么?
答案 2 :(得分:1)
您可以尝试使用Process Monitor及其新的“调试输出”功能,而不是DebugView。它不使用OutputDebugString,它使用自己的API,还有一个Delphi包装器here。您可以使用进程监视器过滤功能,Delphi不会捕获这些消息 - 但它不是OutputDebugString的通用功能。
答案 3 :(得分:0)
在“事件日志”属性中禁用“输出消息”不起作用?
答案 4 :(得分:0)
不是原始问题的问题,我意识到,但值得一看Raize Software的CodeSite。它将OutputDebugString提升到一个全新的水平。消息(可以)被定向到CodeSite查看器,这大致相当于一个高度加密的DebugView。非常值得每一分钱恕我直言。