मैं लिनक्स (जीसीसी) से विंडोज (विजुअल सी ++ 2008) में एक बड़े सी ++ एप्लिकेशन को पोर्ट करने की प्रक्रिया में हूं और प्लगइन के साथ लिंकर समस्याएं हैं। लिनक्स पर यह कोई मुद्दा नहीं था, क्योंकि। रनटाइम प्रतीक लुकअप का समर्थन करता है, लेकिन डीएलएल इसका समर्थन नहीं करता है।विजुअल सी ++ - एक्सईई के खिलाफ प्लगइन डीएलएल लिंकिंग?
कुछ पृष्ठभूमि जानकारी: एप्लिकेशन (मेजबान), जो एक स्क्रिप्टिंग वातावरण होस्ट करता है, प्लगइन्स (साझा लाइब्रेरी जो स्क्रिप्ट एपीआई कॉल द्वारा रनटाइम पर लोड होते हैं) को इंटरफेस प्रदान करता है, जिससे मेजबान और स्क्रिप्टिंग एपीआई को विस्तारित किया जा सकता है मेजबान आवेदन recompiling बिना। लिनक्स पर यह प्लगइन स्रोत में होस्ट एप्लिकेशन के शीर्षलेखों को शामिल करने का मामला है, लेकिन विंडोज़ पर मुझे लिंकर त्रुटियां मिल रही हैं। मुझे यकीन नहीं है कि इन प्रतीकों को हल करने के लिए मुझे Visual C++ के साथ लिंक करने की आवश्यकता है।
हमारे निर्भरता (खुला स्रोत, LGPL) में से एक पूर्वप्रक्रमक घोषणाओं है कि यह यह हेडर में (dllexport) और __declspec (dllimport) __declspec सम्मिलित करने के लिए उपयोग करता है। कुछ पूर्व शोध इंगित करते हैं कि मुझे यह भी करना पड़ सकता है, लेकिन मैं कोर हेडर के पूरे समूह को संशोधित करने से पहले यह सुनिश्चित करना चाहता हूं। (मैं पहले यह मिनीजीडब्ल्यू पर काम करने में सक्षम था, लेकिन हमने फैसला किया है कि विजुअल स्टूडियो का समर्थन इस प्रकार की वाणिज्यिक परियोजना के लिए एक आवश्यकता है।)
मेरा प्रश्न, संक्षेप में: मैं रनटाइम- विजुअल सी ++ में होस्ट एक्सई के खिलाफ लोड डीएलएस?
संपादित करें: एक उदाहरण के साथ समस्या यह स्पष्ट करने के लिए, मैं अपने मेजबान आवेदन में एक वर्ग है, वस्तु है, जो एक उद्देश्य यह है कि एक स्क्रिप्ट द्वारा पहुँचा जा सकता के आधार प्रकार का प्रतिनिधित्व करता है। मेरे प्लगइन में मेरे पास कई वर्ग हैं जो ऑब्जेक्ट को अन्य कार्यों को निष्पादित करने के लिए बढ़ाते हैं, जैसे नेटवर्किंग समर्थन या नए दृश्य तत्वों को एकीकृत करना। इसका मतलब है कि मेरे डीएल को मेजबान exe में प्रतीकों के साथ लिंक करना होगा, और मुझे यकीन नहीं है कि यह कैसे करें।
मुझे इसके चारों ओर अपने सिर को लपेटने में कुछ परेशानी हो रही है। यदि आपके पास ठोस उदाहरण है और कोड की कुछ पंक्तियों को सरल बना सकता है जो शायद आपकी मदद करने में मदद कर सकता है। – ojblass