2012-05-09 31 views

Respuesta

19

Utilice debug.print. Pero no hay consola en una aplicación VB6, que se imprimirá en la ventana de depuración.

+0

Gracias. Eso es lo que necesitaba. – CodeBlue

0

Esto no es algo que Vb6 puede hacer fácilmente (estoy seguro de que se puede hacer, pero estarías llamando API Win32 nativas, y no vale la pena si solo lo estás utilizando para la depuración)

Su mejor opción (en mi humilde opinión) es escribir esos valores en un archivo de registro.

+0

En realidad se puede hacer de manera bastante trivial desde VB6 usando el FSO. Por supuesto, solo se aplica cuando * tiene * una consola, que rara vez hace en un programa VB6, a menos que tenga AllocConsole() o se esté ejecutando como un EXE vuelto a vincular para el subsistema de la consola. Pero estoy de acuerdo en que no es la mejor herramienta para la depuración. – Bob77

+0

@Bob: Entonces, viene bajo el título de "¿Fácil cuando sabes cómo" tal vez? :) –

+0

No hay mucho para eso. Ver la respuesta extraña que publiqué. – Bob77

3

Use OutputDebugString y vea los mensajes con el excelente número gratuito DebugView. Más información y código reutilizable de Karl Peterson here

9

No se espera que esta sea la respuesta aceptada porque Debug.Print es el camino a seguir para las pruebas IDE.

Sin embargo sólo para mostrar cómo utilizar la E/S estándar arroyos fácilmente en VB6:

Option Explicit 
' 
'Reference to Microsoft Scripting Runtime. 
' 

Public SIn As Scripting.TextStream 
Public SOut As Scripting.TextStream 

'--- Only required for testing in IDE or Windows Subsystem === 
Private Declare Function AllocConsole Lib "kernel32"() As Long 
Private Declare Function GetConsoleTitle Lib "kernel32" _ 
    Alias "GetConsoleTitleA" (_ 
    ByVal lpConsoleTitle As String, _ 
    ByVal nSize As Long) As Long 
Private Declare Function FreeConsole Lib "kernel32"() As Long 

Private Allocated As Boolean 

Private Sub Setup() 
    Dim Title As String 

    Title = Space$(260) 
    If GetConsoleTitle(Title, 260) = 0 Then 
     AllocConsole 
     Allocated = True 
    End If 
End Sub 

Private Sub TearDown() 
    If Allocated Then 
     SOut.Write "Press enter to continue..." 
     SIn.ReadLine 
     FreeConsole 
    End If 
End Sub 
'--- End testing --------------------------------------------- 

Private Sub Main() 
    Setup 'Omit for Console Subsystem. 

    With New Scripting.FileSystemObject 
     Set SIn = .GetStandardStream(StdIn) 
     Set SOut = .GetStandardStream(StdOut) 
    End With 

    SOut.WriteLine "Any output you want" 
    SOut.WriteLine "Goes here" 

    TearDown 'Omit for Console Subsystem. 
End Sub 

Tenga en cuenta que muy poco del código no es necesario para un programa real de consola en Visual Basic 6. La mayor parte se trata de asignar una ventana de consola cuando el programa no se está ejecutando en el subsistema de la consola.

+2

+1: Bueno. Así que, como dije entonces, es fácil cuando sabes cómo :) –

Cuestiones relacionadas