2009-08-06 6 views
5

मुझे दृश्य मूल 6 परियोजना के साथ एक छोटी सी समस्या है। सब कुछ आईडीई में ठीक काम करता है लेकिन जब मैं एप्लिकेशन चलाता हूं तो निष्पादन योग्य हर बार दुर्घटनाग्रस्त हो जाता है। एप्लिकेशन C++ dll के साथ संवाद करने के लिए कॉलबैक का उपयोग करता है। कॉलबैक शुरू होने पर भी एक संदेश बॉक्स दिखाने के रूप में सरल कोड विफल रहता है।वीबी 6 आवेदन आईडीई में काम करता है लेकिन निष्पादन योग्य क्रैश

मैंने संकलन मोड को पी-कोड में बदल दिया और अभी भी समस्या बनी हुई है।

किसी भी मदद की सराहना की जाएगी।

धन्यवाद सभी

+0

किसी भी त्रुटि संदेश दिखाई नहीं जब यह दुर्घटनाओं है: यहाँ typelib मैं CCRP टाइमर पुस्तकालय के साथ इस के लिए इस्तेमाल किया है? – MarkJ

+0

नहीं, यह सिर्फ –

उत्तर

3

ऐसा लगता है कि कॉलबैक आपके एप्लिकेशन पर निष्पादित होने से भिन्न थ्रेड पर हो रहा है। [संपादित करें: जैसा कि मैंने देखा है जिम ने पहले से ही सुझाव दिया है।] यदि ऐसा है, तो हाँ, kaboom जैसे ही आप ओएलई से संबंधित कुछ भी "स्पर्श" करते हैं या रनटाइम में कॉल करते हैं। मल्टीमीडिया टाइमर कॉलबैक, एफवीआईवी के साथ वही कहानी, और मुझे संदेह होगा कि आपको वही सावधानी बरतनी पड़ेगी क्योंकि अगर ऐसा होता है तो उन लोगों के साथ ऐसा होगा।

विभिन्न थ्रेड कॉलबैक के साथ छोटी कहानी यह है कि आपको एक टाइपेलिब में घोषित पोस्टमेसेज का उपयोग करके स्वयं को एक संदेश पोस्ट करने की आवश्यकता होगी ताकि एरर ऑब्जेक्ट वीबी द्वारा निर्धारित न हो, तो कॉलबैक रिटर्न दें। पोस्ट किए गए संदेश की प्राप्ति पर आप अपनी खुद की प्रसंस्करण करते हैं।

http://vb.mvps.org/tools/files/postmessage.zip

आशा है कि मदद करता है ...

+0

आपको बहुत अधिक धन्यवाद, मेरी अज्ञानता के लिए खेद है, लेकिन यह मेरी पहली दृश्य मूल 6 परियोजना है। मैं tlb फ़ाइल का उपयोग कैसे करूं, मैंने वीबी आईडीई में एक संदर्भ जोड़ने का प्रयास किया लेकिन काम नहीं कर रहा है, और क्या मैं postMethod पर एक स्ट्रक्चर या क्लास प्रकार पास कर सकता हूं क्योंकि कॉलबैक मुझे 4 मान देता है। –

0

कोड आईडीई के रूप में एक ही स्थान से चलाया जा रहा है? शायद यह एक संदर्भ समस्या है, और आपको डीएलएल को फिर से पंजीकृत करने की आवश्यकता है।

एक तैनाती पैकेज यह सुनिश्चित करना चाहिए कि आपके पास सबकुछ इंस्टॉल हो।

+0

है, हाँ एक ही स्थान है, वास्तव में एक ही डीएलएल काम के लिए अन्य कॉल ठीक है –

+0

क्या आप देर से या जल्दी बाध्यकारी हैं? इसके अलावा नीचे दी गई टिप्पणियां भी सही हैं ... कोड के सेगमेंट को पोस्ट करना जो ऑब्जेक्ट को क्रैश/कॉल करना अच्छा होगा। – RiddlerDev

1

कौन कॉल कर रहा है? हमें थोड़ा कोड दिखाएं।

आईडीई वास्तविक समस्याओं का मुखौटा कर सकता है, इसलिए बस चलाने में सक्षम होने की कोई गारंटी नहीं है कि आप जो कर रहे हैं वह समर्थित है।

कॉलबैक के साथ एक आम समस्या यह है कि वीबी 6 का रनटाइम थ्रेड-सुरक्षित नहीं है, इसलिए यदि कोई अन्य थ्रेड आपके वीबी कोड में वापस कॉल कर रहा है, तो आप कुछ भी नहीं कर सकते जो रनटाइम - जैसे एक्सेस स्ट्रिंग्स या ऑब्जेक्ट्स का आह्वान करेगा।

इनमें से कुछ मुद्दों के आसपास तरीके हैं, लेकिन मुझे लगता है कि हमें पहले और जानना होगा।

0

कुछ सवाल:

  1. एक ही पीसी पर निष्पादन योग्य के रूप में यह विकसित किया गया था, या किसी भिन्न है?
  2. क्या फ़ाइल एक मेनिफेस्ट फ़ाइल का उपयोग करती है? यदि ऐसा है, तो मेनफैस्ट कॉल XP थीम करता है?
  3. इसके अलावा, अगर मैनिफेस्ट का उपयोग करते हैं, तो क्या ओसीएक्स फाइलों के लिए एसएक्सएस का उपयोग प्रकट होता है?