मुझे लगता है कि मैं एक सी # डीएलएल संकलित कर सकता हूं और फिर इसे COM ऑब्जेक्ट के रूप में उजागर कर सकता हूं ताकि इसे VBscript से CreateObject'd किया जा सके। मुझे यकीन नहीं है कि यह करने में शामिल कदम ...मैं vbScript से .NET कोड (सी #/vb.net) कैसे कॉल करूं?
उत्तर
ऐसा करना बहुत आसान हो सकता है। लेकिन वहां बहुत सारे स्थान हैं जहां यह इतना आसान नहीं है। यह इस बात पर निर्भर करता है कि आपकी कक्षा को क्या करने में सक्षम होना चाहिए, और आप इसे कैसे तैनात करना चाहते हैं।
कुछ मुद्दों पर विचार करना:
- आपकी कक्षा एक parameterless निर्माता होना आवश्यक है।
- यह स्थिर तरीकों का पर्दाफाश नहीं कर सकता है।
- वैश्विक असेंबली कैश में आपके COM DLL को तैनात कर रहा है ठीक है? यदि नहीं, तो आपको इसे एक मजबूत नाम देना होगा और इसे
regasm /codebase
का उपयोग करके पंजीकृत करना होगा। - क्या आपको लगता है कि कौन सी GUID वर्ग और उसके इंटरफेस की पहचान करती है? यदि नहीं, तो आप
regasm
उन्हें असाइन कर सकते हैं, लेकिन कक्षा पंजीकृत होने पर वे हर बार अलग-अलग होंगे (और हर जगह)। यदि आपको इंस्टॉलेशन में इनविरिएंट रहने के लिए GUID की आवश्यकता है, तो आपकोGuid
विशेषता वाले सदस्यों को चिह्नित करने की आवश्यकता होगी। - क्या आप .NET और COM के बीच डेटा प्रकारों के डिफ़ॉल्ट मार्शलिंग का उपयोग करने जा रहे हैं? यदि नहीं, तो आपको
MarshalAs
विशेषता के साथ गुणों और विधियों को चिह्नित करने की आवश्यकता होगी। - क्या इससे कोई फर्क पड़ता है कि आपकी कक्षा किस प्रकार का COM इंटरफ़ेस उजागर करती है? यदि ऐसा है, तो आपको
InterfaceType
विशेषता से निपटने की आवश्यकता होगी। - क्या आपकी कक्षा को घटनाओं को बढ़ाने या जवाब देने की आवश्यकता है? यदि हां, तो आप अपने वर्ग इंटरफ़ेस को कैसे डिज़ाइन करते हैं इसके प्रभाव हैं।
COM इंटरऑप और .Net here के बारे में बहुत अच्छा (यदि दिनांकित) आलेख है। (लेख पुस्तकालयों की तरह, लेखों के बारे में बहुत सारी चीजें आपके बारे में बात करती हैं, अब आपके लिए स्वचालित रूप से संभाली जाती हैं।) और Microsoft's documentation अद्यतित है, लेकिन काफी विस्तृत नहीं है।
आपको असेंबली पंजीकृत करने के लिए regasm
उपयोगिता का उपयोग करना चाहिए (जैसे आप COM सर्वर के साथ regsvr32
करते हैं)। फिर आप इसे COM से उपयोग कर सकते हैं। सुनिश्चित करें कि यह जीएसी में स्थापित है। COM से उपयोग करने योग्य होने के लिए सामान [ComVisible(true)]
होना चाहिए।
प्रत्येक प्रोजेक्ट के लिए "COM Accessible" विकल्प है जिसे आप चुन सकते हैं। फिर, ज़ाहिर है, आपको इसे इस्तेमाल करने के लिए असेंबली को पंजीकृत करना होगा, लेकिन यह इसके बारे में है।
मैं थोड़ा शिकार सी # (मैं VB.Net करने के लिए इस्तेमाल कर रहा हूँ) के लिए यह पता लगाने के लिए जाना था, लेकिन आप समाधान Explorer में Properties
फ़ोल्डर पर डबल क्लिक करके विकल्प मिल सकता है चुनने, Application
टैब और फिर Assembly Information...
बटन पर क्लिक करें।
- 1. मैं सी/सी ++ से .NET असेंबली कैसे कॉल करूं?
- 2. vbscript कोड
- 3. मैं सी #+/सीएलआई को सी # से कैसे कॉल करूं?
- 4. मैं जावा से .NET कोड कैसे कॉल कर सकता हूं?
- 5. .NET से अप्रबंधित सी ++ कोड
- 6. मैं सी # प्रतिनिधि समारोह को VB.Net में कैसे परिवर्तित करूं?
- 7. मैं ऑब्जेक्टिव सी फ़ंक्शन कैसे कॉल करूं?
- 8. मैं अपने सी कोड से सी # डीएल में विधियों को कैसे कॉल करूं?
- 9. सी # से vb.net convsersion
- 10. मैं WADL फ़ाइलों से सी # कोड कैसे उत्पन्न करूं?
- 11. vbscript
- 12. vbscript में कॉलिंग सी # डीएल
- 13. आप सी कोड से पायथन कोड कैसे कॉल करते हैं?
- 14. मैं रूबी से विंडोज डीएलएल कार्यों को कैसे कॉल करूं?
- 15. मैं स्निपेट से कैसे बचूं? (Vb.Net)
- 16. मैं VB.NET में "इन" LINQ अभिव्यक्ति का उपयोग कैसे करूं?
- 17. मैं जावा कोड को जावास्क्रिप्ट कोड से विकेट में कैसे कॉल करूं?
- 18. vbscript से C# कोड को कॉल करने में असमर्थ - ActiveX त्रुटि
- 19. सी #+ कोड को सी # से कॉल करना संभव है?
- 20. मैं सी # एप्लिकेशन में पर्ल स्क्रिप्ट कैसे कॉल करूं?
- 21. मैं iSeries COBOL से वेब सेवा कैसे कॉल करूं?
- 22. vbscript
- 23. मैं PHP में यह टोकन कैसे उत्पन्न करूं? (.NET से)
- 24. मैं "अस्पष्ट" फ़ंक्शन कॉल कैसे ठीक करूं?
- 25. मैं .NET डेटटाइम से आयरनपीथन डेटाटाइम में कैसे परिवर्तित करूं?
- 26. मैं Enumerable कैसे कॉल करूं। F # से जुड़ें?
- 27. .NET कोड
- 28. मैं सी #
- 29. अगर मैं vb.net के माध्यम से एसक्यूएल डीबी से जुड़ा हूं तो मैं कैसे परीक्षण करूं?
- 30. exe फ़ाइल से VB.NET कोड निकालें