मेरे पास एक विंडोज़ डीएल है (मुख्य एप्लिकेशन सीधे इस विंडोज़ डीएल लोड करता है) जो कि 2 2 डीएलएस से लिंक होता है, जो mingw32 का उपयोग करके क्रॉस-कंपाइलिंग द्वारा प्राप्त किए जाते हैं।
मुझे इस लिंकिंग के साथ एक अजीब समस्या का सामना करना पड़ रहा है।
मान लें कि मेरे पास पहले क्रॉस संकलित में 2 फ़ंक्शन हैंdll funcA_firstdll () और funcB_firstdll () और इसी तरह मेरे पास दूसरे क्रॉस संकलित डीएल funcC_secdll () और funcD_secdll () में 2 फ़ंक्शन हैं। विंडोज़ मुख्य डीएल के साथ लिंक करते समय मुझे कोई लिंकर त्रुटियां नहीं मिलती हैं लेकिन डीएलएस लोड नहीं हो रहे हैं।
इसलिए यदि मैं निर्भरता वॉकर का उपयोग कर विंडोज़ डीएल की निर्भरताओं की जांच करता हूं तो मुझे लाल रंग में पहला और दूसरा क्रॉस संकलित डीएल दोनों दिखाई देता है।
जब मैं पहली क्रॉस संकलित डीएल पर क्लिक करता हूं तो मैं हूंउस डीएलएल (funcA_firstdll () और funcB_firstdll ()) में मौजूद कार्यों को देखकर हरा और दूसरा क्रॉस डीएल (funcC_secdll () और funcD_secdll ()) लाल के रूप में। इसी तरह जब मैं दूसरे क्रॉस संकलित डीएल पर क्लिक करता हूं तो मैं उस डीएल (funcC_secdll () और funcD_secdll ()) में मौजूद कार्यों को देख रहा हूं, हरे और पहले क्रॉस डीएल लाल के रूप में।
मैं समझने में असमर्थ हूं कि वे एक दूसरे के साथ जुड़ने में असमर्थ क्यों हैं। क्या क्रॉस संकलित डीएलएल को जोड़ने का कोई अलग तरीका है।
किसी भी मदद की सराहना की है।
सादर,
Techtotie।
उत्तर:
जवाब के लिए 0 № 1इसे अपने आप हल किया।
यह वास्तव में एक समस्या थी जिसमें mingw द्वारा उत्पन्न प्रॉक्सी libs को MSVC द्वारा ठीक से व्याख्या नहीं किया गया था।
इसलिए डीफ़ फाइलें भी उत्पन्न करनी पड़ीं। इस ट्यूटोरियल का पालन करें
http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs