14

私はVBを初めて使用します。古いVBコードをテストしたいのですが、コードに設定されている特定の値をテストできるようにするには、コンソールに出力する機能が必要です。VBからコンソールに印刷するにはどうすればよいですか?

4

4 に答える 4

24

debug.print を使用します。しかし、VB6 アプリケーションにはコンソールがなく、デバッグ ウィンドウに出力されます。

于 2012-05-09T13:43:30.217 に答える
12

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 の実際のコンソール プログラムに必要なコードはほとんどないことに注意してください。その大部分は、プログラムがコンソール サブシステムで実行されていないときにコンソール ウィンドウを割り当てることです。

于 2012-05-10T17:39:09.380 に答える
4

OutputDebugString優れた無料のDebugViewを使用してメッセージを使用および表示します。実行可能ファイルをデバッグするか、IDEからデバッグします。KarlPetersonによる詳細情報と再利用可能なコードはこちら

于 2012-05-09T15:04:57.223 に答える
0

これは、Vb6 で簡単に実行できることではありません (実行できると確信していますが、ネイティブの Win32 API を呼び出すことになるため、デバッグ目的でのみ使用する場合は、苦労する価値はありません)。

最善の策 (IMHO) は、これらの値をログ ファイルに書き込むことです。

于 2012-05-09T13:44:12.353 に答える