我的Visual C ++程序可以监听自己的调试输出吗?

时间:2014-05-06 09:55:49

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

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

我的程序能以某种方式以编程方式访问该输出,以便它可以解析它并以更方便的方式向我报告吗?

1 个答案:

答案 0 :(得分:6)

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

有两种获取数据的方法:

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

OutputDebugStringW(异常)是OutputDebugStringA的包装器,因此后者是挂钩的函数。有许多库可以轻松实现挂钩,因此每次调用OutputDebugString都会调用您定义的函数,并且您可以使用数据执行任何操作。