2009-10-28 15 views
5

मैं देशी सी ++ (अप्रबंधित कोड) से .NET कोड कैसे कॉल करूं? मैं अपने अप्रबंधित (सी ++) एप्लिकेशन में .NET कोड का खुलासा करना चाहता हूं और फिर उनका उपयोग करना चाहता हूं। अधिक विशेष रूप से, मैं देशी सी ++ से सी # कॉल करना चाहता हूं :)। मुझे पता है कि कई तरीके हैं लेकिन क्या आप मुझे प्रत्येक के पेशेवरों और विपक्ष बता सकते हैं? वैसे, मैं COM का उपयोग नहीं करना चाहता हूं तो अब विकल्प क्या हैं?अप्रबंधित कोड से प्रबंधित कोड का उपयोग कैसे करें?

क्या यह संभव है कि मैं C++/CLI में C# कोड लपेटूं और फिर उसे C++ से कॉल करें? अगर ऐसा है, तो मैं वह कैसे करू? मैं C++/CLI में C# को कैसे लपेटूं और फिर इसे C++ से कॉल करूं?

+0

[अप्रबंधित कार्यक्रमों के लिए डीएलएल कार्यों का निर्यात] के संभावित डुप्लिकेट [http://stackoverflow.com/questions/12647766/exporting-dll-functions-to-unmanaged-programs) – Rohit

उत्तर

0

आप COM12 के रूप में प्रबंधित घटक expose कर सकते हैं।

5

मैं इसके बारे में अभी हाल ही में लिखा है। यह डेल्फी के बारे में था, लेकिन इसका मतलब यह नहीं है कि यह सी ++ के साथ भी काम नहीं करेगा।

.NET component in DELPHI 2009

यहां तक ​​कि सी के बारे में ++ ज्यादा जानने के बिना, मैं अभी भी पता है कि IUnknown और COM-संगत इंटरफेस संदर्भ प्रयोग करने योग्य सी से ठीक होना चाहिए ++ (मामले आप, वस्तुओं पारित करने के लिए सिर्फ संरचनाओं नहीं की जरूरत है)।

  • आप अपने सी # कोड को संदर्भित करने के लिए माइक्रोसॉफ्ट के सी ++/सीएलआई का उपयोग कर सकते हैं और इसे सामान्य डीएलएल कार्यों के रूप में निर्यात कर सकते हैं।
  • मैंने लिखा है कि आप MSBuild task भी डाउनलोड कर सकते हैं, जो आपको सीधे सी # से फ़ंक्शन निर्यात करने की अनुमति देता है। DllImportAttribute का उपयोग कैसे किया जाता है इसके अनुरूप।

यह सी # कोड एक फ़ंक्शन "YourExportName" निर्यात करेगा जिसका उपयोग किसी भी सी-संगत फ़ंक्शन की तरह किया जा सकता है।


class Sample 
{ 
    [DllExport("YourExportName")] 
    static int TestFunction(int left, int right) 
    { 
    return left + right; 
    } 
} 
1

तुम हमेशा मोनो एम्बेड कर सकते हैं। मैंने इसे अब तक दो परियोजनाओं में किया है और यह काफी आसान है। अधिक जानकारी के लिए Embedding Mono का पालन करें।

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