2009-07-29 16 views
7

गतिशील रूप से पी/एनईटी से अप्रबंधित कोड को आमंत्रित करने का सबसे अच्छा तरीका क्या है?गतिशील रूप से पी/एक डीएलएल

उदाहरण के लिए, मेरे पास उनके बीच सामान्य सी-शैली निर्यात के साथ कई अप्रबंधित डीएलएल हैं। मैं एक डीएलएल के लिए रास्ता लेना चाहता हूं और फिर पी/निर्यात किए गए नाम के आधार पर एक समारोह को आमंत्रित करना चाहता हूं। मैं रनटाइम तक डीएलएल नाम नहीं जानता।

असल में, LoadLibrary और GetProcAddress के बराबर क्या है .NET के लिए? (मेरे पास मौजूदा कोड है जो एक ही लक्ष्य को पूरा करने के लिए इन कार्यों का उपयोग करता है, पूरी तरह से अप्रबंधित कोड में)।

उत्तर

0

आपके पास एक विकल्प है जो एक मूल फ़ंक्शन बनाना है जो उपयुक्त DLL लोड करने और स्मृति में कार्य करने के लिए ज़िम्मेदार है और फिर उस पथ को आपके पथ के आधार पर प्रबंधित कोड पर लौटा रहा है। इस तरह आप GetProcAddress चाल का स्वाभाविक रूप से उपयोग कर सकते हैं और फ़ंक्शन पॉइंट वापस कर सकते हैं। फिर आप इस फ़ंक्शन में PInvoke कर सकते हैं और एक प्रतिनिधि वापस प्राप्त कर सकते हैं जो तब उचित DLL में आ जाएगा।

3

आप इसे लोड/लाइब्रेरी और GetProcAddress में आमंत्रित करके, और फिर Marshal.GetDelegateForFunctionPointer का उपयोग करके कर सकते हैं।

विवरण के लिए, this article देखें।

2

इसके अलावा जोनाथन स्विफ्ट शीर्षक से this ब्लॉग पोस्ट देखें गतिशील रूप से .net

से एक अप्रबंधित dll बुला
संबंधित मुद्दे