windows - Statically linked application - invalid or corrupt dll -
मेरे पास एक ऐसा अनुप्रयोग है जो winInet कक्षाओं का उपयोग करता है - #include & lt; afxinet.h & gt;
और wininet.dll
मैं अपने ऐप के साथ ही डीएलएल में WinInet फ़ंक्शन कॉल को स्थिर रूप से लिंक करना चाहता हूं, इसलिए मैंने इसका अनुसरण किया। मैंने तब Wininet.dll को मेरी प्रोजेक्ट डायरेक्टरी में कॉपी किया, जैसा मैंने पढ़ा था।
बिल्डिंग पर मुझे निम्न त्रुटि मिलती है - wininet.dll: घातक त्रुटि LNK1136: अवैध या भ्रष्ट फ़ाइल
मेरा पहला सवाल यह है कि:
- क्या मैं सही ढंग से ऐसा कर रहा हूं जो मुझे लगता है कि फ़ंक्शन कॉल और डीएलएल को स्थायी रूप से लिंक कर रहा है?
- यदि ऐसा है, तो इस स्थापना से डीएल भ्रष्ट क्यों है, लेकिन इन परिवर्तनों के बिना काम करता है?
किसी भी मदद की सराहना की जाती है। धन्यवाद।
"स्थिर लिंकिंग" आपके आवेदन में कोड को शामिल करने की प्रक्रिया है। प्रकृति से, एक DLL एक डायनेमिक लिंक लायब्रेरी है और इसलिए नहीं, आपके एप्लिकेशन की निर्देशिका में डीएलएल को शामिल करना स्थिर नहीं है - यह गतिशील रहता है। आवेदन की निर्देशिका में इसे रखने का कारण यह है कि एप्लिकेशन इसे स्थापित करने की आवश्यकता के बिना पा सकते हैं।
मुझे नहीं लगता कि यह "भ्रष्ट" DLL है - मुझे आपको संदेह है ऐसे आवेदन में डीएलएल को स्थिर लिंक करने का प्रयास कर रहे हैं जो ऐसा नहीं हो सकता। आपको इसके बजाय सही लिब फ़ाइल को शामिल करने की आवश्यकता है, जो कुछ भी है, के साथ लिंक करने के लिए अतिरिक्त लाइब्रेरी में और सुनिश्चित करें कि आप जिस लिपि फ़ाइल से लिंक करते हैं वह wininet.dll के लिए DLL निर्यात पैकेज नहीं है
Comments
Post a Comment