मैं कुछ इस तरह थोड़ी देर वापस लिखा है और कर सकते हैं 'नहीं है इसे नहीं मिला, और इसे फिर से जरूरी था। इसलिए मैंने इसे अभी लिखा है और मुझे लगता है कि मुझे यह सही मिला:
Public Function IsRunningInIde() As Boolean
Static bFlag As Boolean
bFlag = Not bFlag
If bFlag Then Debug.Assert IsRunningInIde()
IsRunningInIde = Not bFlag
bFlag = False
End Function
कोई त्रुटि नहीं बढ़ रही है।
एरर का कोई रीसेट नहीं।
बस एक समारोह।
रेखा 1: "बीएफएलएजी" की "स्टेटिक" घोषणा का कारण बीएफएलएग के मूल्य को "IsRunningInIde" में एकाधिक कॉलों में चिपकने का कारण बनता है। हम इसे इसलिए चाहते हैं क्योंकि मैं इस फ़ंक्शन को अपने आप में कॉल करता हूं, और मैं उस इनपुट पैरामीटर के साथ फ़ंक्शन को कूड़ा नहीं करना चाहता था जिसे उपयोगकर्ता द्वारा आवश्यक नहीं है।
रेखा 3: आईडीई में नहीं चलते समय "डीबग.एस्र्ट" को कॉल नहीं किया जाता है। तो केवल जब आईडीई में "IsrunningInIde" को रिकर्सिवली कहा जाता है।
रेखा 2: यदि रिकर्सिव कॉल में नहीं है, तो बीएफएलएजी गलत शुरू होता है, और सत्य पर सेट हो जाता है। यदि रिकर्सिव कॉल में (केवल आईडीई में चलते समय होता है), यह सत्य के रूप में शुरू होता है, और वापस झूठ पर सेट हो जाता है।
रेखा 3: केवल "IsRunningInIde" को कॉल करें यदि यह पहले से ही इस फ़ंक्शन में पहले से नहीं है, तो यह जांचकर कि बीएफएलएजी सच है या नहीं।
रेखा 4: यदि रिकर्सिव कॉल में, हमेशा सत्य लौटाता है, जो वास्तव में कोई फर्क नहीं पड़ता है, लेकिन असर विफल होने का कारण नहीं बनता है। यदि रिकर्सिव कॉल में नहीं है, तो "बीएफएलएजी नहीं" लौटाता है, जो बीएफएलएग अब "गलत" है यदि IsRunningInIde को रिकर्सिवली कहा जाता है, और बीएफएलएग "ट्रू" है जिसे रिकर्सिवली कहा जाता है। तो मूल रूप से, यदि बीएफएलएजी आईडीई में चल रहा है तो "ट्रू" नहीं लौटाता है।
रेखा 5: बीएफएलएजी को साफ़ करता है ताकि यह इस फ़ंक्शन के लिए अगली कॉल की शुरुआत में हमेशा "गलत" हो।
यह समझाना मुश्किल है, दोनों परिदृश्यों में, आपके दिमाग में इसे आगे बढ़ाना बेहतर है।
यदि आप कोड को समझना आसान चाहते हैं, तो इसका उपयोग न करें।
यदि इस कोड में कोई समस्या है, तो मैं क्षमा चाहता हूं और मुझे बताता हूं ताकि मैं इसे ठीक कर सकूं।
भी देखें प्रश्न [VB6 में डिबग मोड] (http://stackoverflow.com/questions/ 9052024/डीबग-मोड-इन-वीबी -6) – MarkJ
आईडीई में चलना डीबगर संलग्न होने जैसा नहीं है, जो निश्चित रूप से भी किया जा सकता है लेकिन यह एक अलग बात है। – Bob77