我的程序使用大量第三方库,有时会将有用的错误消息放入调试器输出中(使用OutputDebugString()
)。
我的程序能以某种方式以编程方式访问该输出,以便它可以解析它并以更方便的方式向我报告吗?
答案 0 :(得分:6)
没有API可以让您访问通过OutputDebugString
输出的字符串。
有两种获取数据的方法:
OutputDebugStringA
功能。 OutputDebugString
协议仅支持单个侦听器,因此第一种方法与应用程序的多个实例,执行相同操作的其他应用程序或调试程序不兼容。它还可以捕获所有应用程序的输出。这不是一个好主意。我之所以提到它只是因为它是一个明显但错误的解决方案。
OutputDebugStringW
(异常)是OutputDebugStringA
的包装器,因此后者是挂钩的函数。有许多库可以轻松实现挂钩,因此每次调用OutputDebugString
都会调用您定义的函数,并且您可以使用数据执行任何操作。