我刚接触VB。我想测试一些旧的VB代码,但我需要能够在控制台中打印输出以测试设置在代码中的某些值。如何从VB中打印输出到控制台?
这不是预期的被接受的答案,因为Debug.Print是进行IDE测试的方法。
但是只是为了展示如何在VB6中轻松使用标准的I/O流:
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中实际的控制台程序只需要很少的代码。大部分代码是用于在程序未在控制台子系统下运行时分配控制台窗口。
这不是Vb6可以轻松完成的事情(我相信它是可以完成的,但你需要调用本地Win32 API,如果你只是用它进行调试,这并不值得痛苦)
在我看来,你最好的选择是将这些值写入日志文件。