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

问题描述:

我开发了一个基于C++的COM对象来在VB6应用程序中使用它。现在我需要添加一些日志记录来捕获一些错误。我从'How to debug COM object in Visual Studio 6.0'问题的答案中发现我可以使用OutputDebugString函数。但是有可能以某种方式写入VB6立即窗口吗?如何从基于C++的COM对象写入VB6立即窗口?

我不认为你可以直接写入它,但你可以使用只包含debug.print调用的COM事件。

,而不是试图写入立即窗口,它是使用DebugView Sysinternals公司(现为微软的TechNet的一部分)一般比较有用:

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

您可以在开发过程中以及在生产过程中使用它。

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

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

+1。如果您可以在DebugView中一起查看VB6和C++日志消息,生活会更好。将VB6更改为使用'OutputDebugString'而不是'Debug.Print'进行记录。只需从[this](http://visualstudiomagazine.com/articles/2008/11/17/executing-debuggables.aspx)中复制常规DebugOutput即可获得出色的Karl Peterson文章 – MarkJ