Я новичок в VB. Я хочу проверить старый код VB, но мне нужна возможность печатать на консоли, чтобы проверить определенные значения, установленные в коде. Как печатать на консоли с VB?
Как написать консоль отладки в VB6?
Ответ 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).