如何从基于C++的COM对象写入VB6立即窗口?

ezp*_*sso 0 c++ vb6 com debugging logging

我开发了一个基于C++的COM对象,以便在VB6应用程序中使用它.现在我需要添加一些日志来捕获一些bug.我从"如何在Visual Studio 6.0中调试COM对象"的问题中找到了我可以使用该OutputDebugString函数的问题.但是有可能以某种方式写入VB6立即窗口吗?

Mit*_*eat 5

而不是尝试写入即时窗口,从Sysinternals(现在是Microsoft technet的一部分)使用DebugView通常更有用:

DebugView是一个应用程序,它允许您监视本地系统或网络上可通过TCP/IP访问的任何计算机上的调试输出.它能够显示内核模式和Win32调试输出,因此您不需要调试器来捕获应用程序或设备驱动程序生成的调试输出,也不需要修改应用程序或驱动程序以使用非标准调试输出API.

您可以在开发期间以及生产中使用它.

在Windows 2000,XP,Server 2003和Vista DebugView下将捕获:

  • Win32 OutputDebugString
  • 内核模式DbgPrint
  • DbgPrint的所有内核模式变体都在Windows XP和Server 2003中实现

  • +1.如果您可以在DebugView中一起查看VB6和C++日志消息,那么生活会更好.将VB6更改为使用`OutputDebugString`而不是`Debug.Print`进行记录.只需复制[this](http://visualstudiomagazine.com/articles/2008/11/17/executing-debuggables.aspx)优秀的Karl Peterson文章中的例程DebugOutput (2认同)