2012-05-17 12 views
5

मैं सी ++/सीएलआई में अपने मूल सी ++ विधियों के लिए एक रैपर लिख रहा हूं जो उन्हें सी # के सामने उजागर करेगा। अब मैं विजुअल स्टूडियो 2008 का उपयोग कर रहा हूं। क्या कोई मुझे बता सकता है कि मुझे किस प्रकार की परियोजना बनाने की ज़रूरत है ताकि मेरा रैपर सी # के संपर्क में आ जाए। मैं विजुअल स्टूडियो 2008 में देखते हैं परियोजनाओं के विभिन्न प्रकार के विज़ुअल सी के तहत कर रहे हैं ++ ---> CLR ---->सी ++/सीएलआई के लिए किस प्रकार की परियोजना बनाई जानी चाहिए?

class library, 
CLR Empty Project, 
Windows form control library, 
CLR Console Application, 
Windows Forms Application, 
Windows Service 

कौन सा उपयोग करना चाहिए?

उत्तर

6

आपको क्लास लाइब्रेरी टाइप करने की परियोजना बनाना है। सबसे महत्वपूर्ण बात यह है कि परियोजना गुणों में "सामान्य भाषा रनटाइम समर्थन" विकल्प ("सामान्य भाषा रनटाइम समर्थन (/ clr)" पर सेट करें) - कॉन्फ़िगरेशन गुण -> सामान्य

इससे आपको उपयोग करने की अनुमति मिल जाएगी

#pragma managed 
... use your native stuff here 
#pragma unmanaged 

प्रागमा और देशी .lib फ़ाइलों के साथ लिंक।

सूक्ष्म विवरण

http://www.codeguru.com/cpp/cpp/cpp_managed/interop/article.php/c6867/Consuming-Unmanaged-C-Class-Libraries-from-NET-Clients.htm

लिए यह लिंक देखें वहाँ 64-बिट बनाता है के लिए एक पकड़ने (इस लेख में नहीं उल्लेख किया है)। 64-बिट के लिए "लिंकर-> इनपुट-> फोर्स सिंबल रेफरेंस" को "_ DllMainCRTStartup" पर सेट किया जाना चाहिए और 32-बिट के लिए " _DllMainCRTStartup @ 12" पर सेट होना चाहिए।

+0

, त्वरित प्रतिक्रिया के लिए धन्यवाद सामान्य "आम भाषा क्रम समर्थन" के अंतर्गत चार विकल्प 1.) साझा भाषा क्रम का समर्थन (/ CLR) 2.)/CLR की तरह देख रहा है: शुद्ध 3.)/clr: सुरक्षित 4.)/clr: oldsyntax ताकि इन चार में से किसी एक को चुनने की आवश्यकता हो। "कैरेक्टर सेट" के तहत और मुझे "यूनिकोड कैरेक्टर सेट" या "नो सेट" – krishna555

+0

"सामान्य भाषा रनटाइम सपोर्ट (/ क्लियर)" चुनने की आवश्यकता है - इससे एक असेंबली में मूल और प्रबंधित कोड मिश्रण करने की अनुमति मिल जाएगी। –

+0

चरित्र सेट अधिकतर अप्रासंगिक है –

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