【问题标题】:Can my Visual C++ program listen to its own debug output?我的 Visual C++ 程序可以监听它自己的调试输出吗?
【发布时间】:2014-06-22 20:56:03
【问题描述】:

我的程序使用了大量第三方库,这些库有时会将有用的错误消息放入调试器输出中(使用 OutputDebugString())。

我的程序能否以某种方式以编程方式访问该输出,以便对其进行解析并以更方便的方式向我报告?

【问题讨论】:

    标签: c++ debugging winapi visual-c++


    【解决方案1】:

    没有 API 可让您通过 OutputDebugString 访问字符串输出。

    有两种获取数据的方式:

    OutputDebugString 协议仅支持单个侦听器,因此第一种方法与您的应用程序的多个实例、执行相同操作的其他应用程序或调试器不兼容。它还将捕获所有应用程序的输出。这不是一个好主意。我提到它只是因为它是一个明显但错误的解决方案。

    OutputDebugStringW 是(不寻常的)OutputDebugStringA 的包装器,因此后者是挂钩的函数。有很多库可以让挂钩变得简单,所以每次对 OutputDebugString 的调用都将成为对您定义的函数的调用,您可以对数据做任何您喜欢的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-04
      • 2019-08-06
      • 1970-01-01
      • 1970-01-01
      • 2016-01-26
      • 2011-12-12
      • 1970-01-01
      相关资源
      最近更新 更多