2010-10-14 18 views
6

के भीतर से चलाया जाता है जब आईडीई के भीतर से कोई एप्लिकेशन चलाया जाता है और डीबगर संलग्न होता है तो अपवाद 'बाहरी अपवाद C0000008' उठाया जाता है जब यह आयातित ActiveX नियंत्रण से कनेक्ट करने का प्रयास करता है।डेल्फी - बाहरी अपवाद C0000008 जब आवेदन आईडीई

यदि एप्लिकेशन स्टैंडअलोन चलाया गया है या रेड स्टूडियो विकल्प/डीबगर विकल्प/एकीकृत डिबगिंग अनचेक किया गया है, तो प्रोग्राम अपेक्षित काम करता है, कोई अपवाद नहीं है और ActiveX नियंत्रण अपेक्षित परिणाम देता है।

परियोजना में अन्य ActiveX नियंत्रण हैं, जिनमें से सभी ठीक काम करते हैं।

मैं कोशिश की है: - पुनः आयात कर रहा है ActiveX नियंत्रण - - सबसे चल अनुप्रयोगों और सेवाओं आदि को बंद करने से - कि संघर्ष (विशेषज्ञों/प्लग-इन आदि) के कारण हो सकता है किसी भी सॉफ्टवेयर निकाला जा रहा है ActiveX नियंत्रण को पुनर्स्थापित करना यदि वे एक संघर्ष कर रहे हैं

Google खोज रहा है, ऐसा लगता है कि दूसरों को एक ही समस्या का सामना करना पड़ रहा है, लेकिन कोई फिक्स नहीं है (एकीकृत डिबगिंग को बंद करने के अलावा, लेकिन स्पष्ट रूप से यह मान्य विकल्प नहीं है।

क्या किसी के पास कोई विचार है इस समस्या को ठीक करने के लिए देखो?

मैं डेल्फी 2007

उत्तर

2

C0000008 उपयोग कर रहा हूँ स्थिति में एक अमान्य संभाल के लिए लौट आए है। सुनिश्चित करें कि ऑब्जेक्ट बनाने के लिए जब आपका रैपर इसे उचित संभाल देता है और शून्य नहीं (माना जाता है कि यह विंडोज हैंडल की वजह से क्रैश हो रहा है)।

चूंकि डिबगर से जुड़ा हुआ एप्लिकेशन ठीक से चलाता है, इसलिए मुझे लगता है कि रैपर इस स्थिति को गहराई से संभालने में सक्षम है, इसलिए त्रुटि सबसे अधिक संभावना है/ब्लॉक को छोड़कर।

2

यह गैर-स्पष्ट कार्य व्यवहार और आईडीई विकल्पों का संयोजन है।

MSDN CloseHandle

आवेदन एक डिबगर के तहत चल रहा है, समारोह एक अपवाद अगर यह या तो एक संभाल मूल्य कि मान्य नहीं है या एक छद्म संभाल मूल्य प्राप्त फेंक देते हैं। यह तब हो सकता है जब आप दो बार हैंडल बंद करते हैं, या यदि आप FindClose फ़ंक्शन को कॉल करने के बजाय FindFirstFile फ़ंक्शन द्वारा लौटाए गए हैंडल पर क्लोजहैंडल को कॉल करते हैं।

तो दो विकल्प हैं - या तो किसी ऐसे स्थान के लिए कोड जांचें जहां कुछ अमान्य हैंडल बंद हो रहा है या इस अपवाद की आईडीई की अधिसूचना बंद कर दी गई है। Tools > Options > Debugger options > Emb debuggers > Native OS exceptions पर जाएं, Invalid Handle आइटम खोजें और On resume विकल्प Run handled पर बदलें। यह मेरे लिए काम किया।

इस समाधान के लिए क्रेडिट sql.ru मंच से _Vasilisk_ पर जाएं।

संबंधित मुद्दे