मैं एक विंडोज 32 बिट प्रोग्राम लिख रहा हूं जो कई संभावित डीएलएस में से एक का उपयोग कर सकता है। तो यह SysUtils.SafeLoadLibrary
का उपयोग करके प्रत्येक डीएल को बदले में लोड करने का प्रयास करता है और यदि लोडिंग सफल हो जाती है, तो वह उस डीएल का उपयोग करती है।क्या कोई डीएल लोड करने पर त्रुटि को पकड़ने का कोई तरीका निर्भरता नहीं ढूंढ सकता है?
दुर्भाग्य से इनमें से कुछ डीएलएस अन्य डीएलएस से स्थिर रूप से जुड़े हुए हैं। ये डीएलएस कंप्यूटर से गायब हो सकते हैं। उस मामले में मैं संवाद मुझे बता पाने
[MyProgram]: [myprogram.exe] सिस्टम त्रुटि
कार्यक्रम शुरू नहीं कर सकते, क्योंकि [कुछ dll नाम] अपने कंप्यूटर से गायब है। कार्यक्रम फिर से स्थापित करने से इस समस्या को ठीक करने के लिए प्रयास करें। "
कि संवाद में ठीक बटन दबाने के बाद, कार्यक्रम दिखा बजाय त्रुटि कोड हो जाता है और अन्य DLLs जो तब ठीक काम करता है में से एक कोशिश करता है।
।? उपयोगकर्ता मैं अपने कार्यक्रम चुपचाप इसे अनदेखा करना चाहते हैं कि संवाद
मैं ऐसा कैसे पूरा कर सकते हैं
मामले में महत्वपूर्ण है: यह मेरे कार्यक्रम डेल्फी में लिखा है 2007 Windows संस्करण Windows 8.1 है, लेकिन कार्यक्रम को अन्य विंडोज संस्करणों> = के साथ भी काम करना चाहिए विंडोज एक्स पी।
मैंने SetErrorMode(SEM_FAILCRITICALERRORS)
की कोशिश की है लेकिन इससे कोई फर्क नहीं पड़ता।
देखें [यह सवाल] (https://stackoverflow.com/q/44430822/1889329)। – IInspectable
@ अप्रत्याशित धन्यवाद, लेकिन कोई जवाब केवल एक टिप्पणी नहीं है। और अगर मैं सही ढंग से टिप्पणी समझता हूं तो मुझे इसे पूरा करने के लिए डीएलएल को संशोधित करना होगा, जो मैं नहीं कर सकता। – dummzeuch
यह आपके प्रश्न से स्पष्ट नहीं था, चाहे आप लोड करने का प्रयास करने वाले डीएलएल को नियंत्रित करते हैं या नहीं। – IInspectable