Как написать консоль отладки в VB6?

Я новичок в VB. Я хочу проверить старый код VB, но мне нужна возможность печатать на консоли, чтобы проверить определенные значения, установленные в коде. Как печатать на консоли с VB?

Ответ 1

Используйте debug.print. Но в приложении VB6 нет консоли, которая будет печатать в окне отладки.

Ответ 2

Ожидается, что это не будет принятым ответом, потому что Debug.Print - это способ тестирования IDE.

Однако просто чтобы показать, как легко использовать стандартные потоки ввода-вывода в 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

Обратите внимание, что очень мало кода, необходимого для реальной программы консоли в VB6. Основная его часть заключается в том, чтобы выделить окно консоли, когда программа не запущена в подсистеме консоли.

Ответ 3

Используйте OutputDebugString и просмотрите сообщения с отличным DebugView. Дополнительная информация и многоразовый код от Karl Peterson здесь

Ответ 4

Это не то, что Vb6 может легко сделать (я уверен, что это можно сделать, но вы бы назвали собственные API Win32 и не стоили боли, если вы просто используете его для отладки)

Лучше всего (IMHO) записать эти значения в файл журнала.

Ответ 5

Я хотел добавить это, так как я ищу его каждый раз, когда нахожу проект без ссылки OutputDebugString. В VB6 почитается Windows API (Unicode).