5

我想知道是否可以绕过OutputDebugString?我希望 OutputDebugString 输出显示在 DebugView 中,而不是在内部 Delphi 事件查看器窗口中。但我找不到告诉 Delphi 不要吞下 OutputDebugString 的方法。有任何想法吗?

问候

4

5 回答 5

5

这是不可能的。

OutputDebugString 将字符串发送到调试器(顾名思义)。每个进程只能有 1 个活动调试器。您在 Delphi 下运行您的应用程序 - Delphi 收到消息,因为它是一个调试器。您在 Delphi 之外运行您的应用程序 - DebugView 可以访问它们,因为没有调试器声称它。

然而:你为什么需要这个?只需在 Delphi 事件日志中禁用其他类型的事件 - 您将获得与 DebugView 相同的功能。

于 2010-06-25T08:04:54.177 回答
1

我认为没有办法解决这个问题。Delphi 2009中的情况仍然相同。您应该提交功能请求:http: //qc.embarcadero.com

我想知道代替 Delphi 的内部事件日志窗口的优势是什么?

于 2010-06-25T07:01:21.303 回答
1

您可以尝试使用Process Monitor及其新的“调试输出”功能,而不是 DebugView。它不使用 OutputDebugString,它使用自己的API ,并且这里还有一个 Delphi 包装器。您可以使用 Process Monitor 过滤功能,Delphi 不会捕获该消息 - 但它不是 OutputDebugString 的通用功能。

于 2010-06-25T13:59:37.607 回答
0

在事件日志属性中禁用“输出消息”不起作用?

于 2010-06-25T07:00:58.487 回答
0

我意识到,这不是最初的问题,但值得一看来自 Raize Software的CodeSite 。它将 OutputDebugString 提升到一个全新的水平。消息(可以)被定向到 CodeSite 查看器,该查看器大致相当于一个高度增强的 DebugView。值得每一分钱恕我直言。

于 2010-06-25T09:16:46.743 回答