2012-10-09 15 views
6

संभव डुप्लिकेट:
Best way to call Managed .NET code from Unmanaged codeसी # एक पटकथा भाषा के रूप में

मैं अगर मैं संभवतः एक C++ देशी आवेदन में की मेजबानी की एक पटकथा भाषा के रूप में सी # इस्तेमाल कर सकते हैं पता करने के लिए उत्सुक हूँ। मैं अपने खुद के गेम इंजन पर 5 साल तक काम कर रहा हूं लेकिन मैंने कभी भी इसके स्क्रिप्टिंग पहलू को छुआ नहीं है। मुझे पसंद है कि कैसे एकता में मैं खेल में विभिन्न वस्तुओं के लिए सी # स्क्रिप्ट लिख सकता हूं।

मैंने कुछ खोज किया लेकिन मुझे वास्तविक उपयोग के कुछ भी नहीं मिला।

ध्यान दें कि मेरा प्रश्न .NET से संबंधित नहीं है लेकिन सी # को सामान्य भाषा के रूप में नहीं है।

बस यह सुनिश्चित करने के लिए, मैं यह कहूंगा: मैं देशी सी ++ को सी # से कॉल नहीं करना चाहता हूं। मैं इसे दूसरी तरफ चाहता हूं।

यदि कोई मुझे कुछ संसाधनों के लिए इंगित कर सकता है तो मैं इसकी सराहना करता हूं।

+0

व्यवहार्य लगता है, जब तक कि आप जो कॉल करना चाहते हैं उसके लिए एक प्रबंधित इंटरफ़ेस है। – Jodrell

+0

मुझे लगता है कि शायद, [यह] (http://stackoverflow.com/questions/1832293/c-sharp-scripting-language) सुझाए गए डुप्लिकेट से बेहतर फिट है। हालांकि मैं यह नहीं कहूंगा कि यह एक सटीक डुप्लिकेट –

+2

सी # वास्तव में एक स्क्रिप्टिंग भाषा होने के लिए डिज़ाइन नहीं किया गया है। क्या आपने जावास्क्रिप्ट का उपयोग करके (यदि संभव हो) माना है? Google के वी 8 इंजन में देखें (जो मुझे लगता है कि पहले से ही सी ++ है), और आप मूल सी ++ ऑब्जेक्ट्स को जावास्क्रिप्ट से हुक कर सकते हैं ... मान्य रूप से जावास्क्रिप्ट को वेब के लिए डिज़ाइन किया गया है, लेकिन इसे अन्य एप्लिकेशन में अनुकूलित किया जा सकता है। – series0ne

उत्तर

5

हाँ, आप क्या करना चाहते हैं अपने स्वयं के अनुप्रयोग में CLR की मेजबानी है। यहां एक एमएसडीएन आलेख है जो इसके ऊपर जाता है।

http://msdn.microsoft.com/en-us/magazine/cc301479.aspx

उस लेख के लेखक भी है जो इसे के सभी पहलुओं को शामिल किया गया बाहर एक किताब है। एक बार जब आप सीएलआर प्राप्त कर लेते हैं और अपने ऐप में चलते हैं, तो यदि आप सच्ची स्क्रिप्टिंग चाहते हैं, तो आप गतिशील रूप से कोड संकलित करना चाहते हैं, और साइरस ने ऐसा करने के तरीके पर कुछ लिंक प्रदान किए हैं।

आपको अनिवार्य रूप से सीएलआर नेमस्पेस में अपने मुख्य ऐप के कुछ हिस्सों का पर्दाफाश करने की आवश्यकता होगी। अन्यथा, आप मुख्य होस्टिंग ऐप की किसी विशेष विशेषताओं तक पहुंच नहीं पाएंगे।

संपादित करें: जब मैं "सच्ची स्क्रिप्टिंग" कहता हूं, मेरा मतलब है कि आप रनटाइम पर अपनी स्क्रिप्ट के लिए एक्सटेंशन .cs के साथ टेक्स्ट फ़ाइलों का उपयोग कर रहे हैं। पहले से संकलित करने के लिए और अधिक कुशल होगा और फिर मेजबान ऐप के साथ डीएलएल शामिल करें, हालांकि आप इसे दोनों तरीकों से कर सकते हैं।

+1

सीएलआर होस्टिंग सेंटर से लिंक डॉक्स: http://msdn.microsoft.com/en-us/library/dd380850.aspx – PaulPerry

0

आप रिकर्ड निल्सन द्वारा CSRepl के स्रोतों को देखना चाहते हैं। यह एक सी # इंटरैक्टिव दुभाषिया है। यह सीएलआर होस्ट नहीं करता है, क्योंकि यह प्रबंधित है, लेकिन सी # स्क्रिप्टिंग पर्यावरण बनाता है।

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