VB'ye yeni geliyorum. Bazı eski VB kodlarını test etmek istiyorum, ancak kodda belirlenen belirli değerleri test edebilmek için konsola basma yeteneğine ihtiyacım var. Konsoldan VB'ye nasıl yazdırılır?VB6'da bir hata ayıklama konsoluna nasıl yazılır?
cevap
Debug.print dosyasını kullanın. Ancak VB6 uygulamasında, hata ayıklama penceresine yazdırılacak konsol yok.
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.
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
@Bob: Öyleyse, "Nasıl olduğunu bildiğiniz zaman kolay" başlığı altında olabilir belki? :) –
Çok fazla değil. Gönderdiğim yabancı cevaba bakın. – Bob77
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 gereklidirOption 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.
+1: Güzel olan. Yani, dediğim gibi, nasıl olduğunu bildiğiniz zaman kolay :) –
Teşekkürler. İhtiyacım olan buydu. – CodeBlue