2012-05-09 17 views

cevap

19

Debug.print dosyasını kullanın. Ancak VB6 uygulamasında, hata ayıklama penceresine yazdırılacak konsol yok.

+0

Teşekkürler. İhtiyacım olan buydu. – CodeBlue

0

Bu, Vb6'nın kolayca yapabileceği bir şey değildir (Eminim bu yapılabilir, ancak yerel Win32 API'lerini çağırıyorsunuzdur ve hata ayıklama için kullanıyorsanız acıya değmez)

En iyi seçiminiz (IMHO) bu değerleri bir günlük dosyasına yazmaktır.

+0

Aslında, FSO kullanılarak VB6'dan oldukça önemsiz bir şekilde yapılabilir. Tabii ki, sadece bir * VB6 programında nadiren yaptığınız bir konsol * sahibi olduğunuz zaman geçerlidir - AllocConsole() siz değilseniz veya Konsol Alt Sistemi için bir EXE olarak çalıştırılmışsa. Ancak hata ayıklama için en iyi araç olmadığını kabul ediyorum. – Bob77

+0

@Bob: Öyleyse, "Nasıl olduğunu bildiğiniz zaman kolay" başlığı altında olabilir belki? :) –

+0

Çok fazla değil. Gönderdiğim yabancı cevaba bakın. – Bob77

3

OutputDebugString kullanın ve iletileri mükemmel ücretsiz DebugView ile görüntüleyin. Daha fazla bilgi ve yeniden kullanılabilir kod Karl Peterson'dan here

9

Bu, kabul edilen yanıt olması beklenmemektedir çünkü Debug.Print IDE testi için yoldur.

Ancak sadece standart I nasıl kullanılacağını göstermek için G/Ç VB6 kolayca akışları: VB6 gerçek Konsol programı için kod çok az gereklidir

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 

Not. Bunun bir parçası, program Konsol Alt Sisteminde çalışmadığında bir Konsol penceresi tahsis etmektir.

+2

+1: Güzel olan. Yani, dediğim gibi, nasıl olduğunu bildiğiniz zaman kolay :) –