2009-08-23 16 views
6

क्या .NET CLR रनटाइम होस्ट करने और MethodImplOptions.InternalCall फ़ंक्शन पंजीकृत करने का कोई तरीका है? (यह पी/Invoke के बारे में कोई विषय नहीं है).NET CLR InternalCall

उत्तर

3

एसएससीएलआई कोड (विशेष रूप से clr \ src \ vm \ ecall.cpp) सुझाव देता है कि InternalCall विधियों को पंजीकृत करने का कोई तरीका नहीं है, क्योंकि महत्वपूर्ण gECClasses तालिका हार्डकोड है।

+0

वास्तविक API साझा स्रोत संस्करण से अलग है? – jameszhao00

+0

वे निश्चित हैं, लेकिन कैसे? .. मैं केवल आपके आईडीए को फायरिंग और एक हाथ में सार्वजनिक प्रतीकों का सुझाव दे सकता हूं, दूसरे में एसएससीएलआई कोड - डाइविंग 'mscorwks.dll' में। –

+0

मैंने देखा है कि कई लोग इस प्रश्न को फ़ोरम पर पूछते हैं - वे या तो सी ++ डीएलएल में कुछ कॉल करना चाहते हैं और सोचें कि ऐसा करने का तरीका हो सकता है, अन्यथा वे कभी नहीं कहेंगे कि वे क्या करना चाहते हैं। जवाब किसी भी तरह से "नहीं" है। ब्याज से, आप ऐसा क्यों करना चाहते हैं? –

0

IMetaDataImport आपकी सबसे अच्छी शर्त है, लेकिन वास्तव में इसके लिए झुकाव नहीं कर सकता। यह सी ++/सीएलआई के लिए एक विशिष्ट कार्य की तरह लगता है।

+0

चिह्न से बाहर रास्ता, -1 –

+0

यहां "निशान से रास्ता" क्या है? यदि COM api का उपयोग करके InternalCall काम करने का कोई तरीका नहीं है, तो पी/Invoke एक विकल्प नहीं है, तो C++/CLI प्रबंधित-> अप्रबंधित जाने के लिए सबसे अच्छा (केवल?) तरीका है। – arul

+0

आंतरिककॉल सीएलआई के स्तर से नीचे है, इसलिए सी ++/सीएलआई। जेम्सशेहो का सवाल वह जो चाहता है उसके बारे में बहुत विशिष्ट है। –

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