2012-05-09 13 views
9

मैं वीबी के लिए नया हूँ। मैं कुछ पुराने वीबी कोड का परीक्षण करना चाहता हूं, लेकिन मुझे कोड में सेट किए गए कुछ मानों का परीक्षण करने में सक्षम होने के लिए कंसोल पर प्रिंट करने की क्षमता की आवश्यकता है। वीबी से कंसोल पर प्रिंट कैसे करें?वीबी 6 में डीबग कंसोल को कैसे लिखें?

उत्तर

19

डीबग.प्रिंट का उपयोग करें। लेकिन वीबी 6 एप्लिकेशन पर कोई कंसोल नहीं है, जो डीबग विंडो पर प्रिंट करेगा।

+0

धन्यवाद। मुझे यही चाहिए। – CodeBlue

0

यह ऐसा कुछ नहीं है जो Vb6 आसानी से कर सकता है (मुझे यकीन है कि यह किया जा सकता है, लेकिन आप देशी Win32 API को कॉल करेंगे, और यदि आप इसे डिबगिंग के लिए उपयोग कर रहे हैं तो दर्द के लायक नहीं है)

आपकी सर्वश्रेष्ठ शर्त (आईएमएचओ) उन मानों को लॉग फ़ाइल में लिखना है।

+0

असल में यह एफएसओ का उपयोग करके वीबी 6 से काफी कम किया जा सकता है। निस्संदेह यह केवल तभी लागू होता है जब आपके पास एक कंसोल होता है, जिसे आप शायद ही कभी एक वीबी 6 प्रोग्राम में करते हैं - जब तक कि आप AllocConsole() या कंसोल सबसिस्टम के लिए एक EXE के रूप में चल रहे हों। लेकिन मैं मानता हूं कि यह डिबगिंग के लिए सबसे अच्छा उपकरण नहीं है। – Bob77

+0

@ बॉब: तो, "आसान जब आप जानते हैं" के शीर्षक के नीचे आता है? :) –

+0

इसके लिए बहुत कुछ नहीं है। मैंने पोस्ट किए गए अपरिपक्व उत्तर को देखें। – Bob77

3

OutputDebugString का उपयोग करें और उत्कृष्ट मुक्त DebugView के साथ संदेश देखें। कार्ल पीटरसन here

9

से अधिक जानकारी और पुन: प्रयोज्य कोड यह स्वीकार्य उत्तर होने की उम्मीद नहीं है क्योंकि डीबग.प्रिंट आईडीई परीक्षण के लिए जाने का तरीका है।

हालांकि कितना मानक मैं उपयोग करने के लिए दिखाने के लिए/ओ 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 में एक वास्तविक कंसोल कार्यक्रम के लिए आवश्यक है। कंसोल सबसिस्टम में प्रोग्राम नहीं चल रहा है जब इसका बड़ा कंसोल विंडो आवंटित करने के बारे में है।

+2

+1: अच्छा है। तो, जैसा मैंने कहा था, तब आसान है जब आप जानते हैं कि कैसे :) –