2009-04-20 16 views
10

से सी # डीएलएल फ़ंक्शन को कैसे कॉल करें मेरे पास सर्वर पर मेरी स्क्रिप्ट है, इसलिए मेरे पास यूआई इंटरैक्शन उपलब्ध नहीं है और कंसोल एप्लिकेशन के बजाय डीएलएल का उपयोग करना है।वीबीस्क्रिप्ट

वीबीस्क्रिप्ट से सी # डीएलएल में कोई फ़ंक्शन कैसे कॉल करें?

मैं अपना डीएलएल COMVisible कैसे बना सकता हूं? क्या मुझे इसे पंजीकृत करना है?

+0

क्या इससे मदद मिलती है? http://stackoverflow.com/questions/9004352/call-a- कार्यक्षमता-in-a-console-app-from-vbscript – xameeramir

उत्तर

21

आपको COMVisibleAttribute को सत्य पर सेट करके दृश्यमान के रूप में अपनी असेंबली को चिह्नित करने की आवश्यकता है (या तो असेंबली स्तर पर या कक्षा स्तर पर यदि आप केवल एक ही प्रकार का पर्दाफाश करना चाहते हैं)।

regasm /codebase MyAssembly.dll 

और अंत में यह VBScript से फोन:

dim myObj 
Set myObj = CreateObject("MyNamespace.MyObject") 
+0

यह भी देखें [COM को .NET घटक का खुलासा करना] (http://www.codeproject.com/लेख/3511/एक्सपोज़िंग-नेट-कंपोनेंट्स-टू-कॉम? फीड = 14076 और डीएफ = 9 0 और एमपीपी = 25 और शोर = 3 और प्रोफेसर = झूठी और क्रम = स्थिति और दृश्य = त्वरित और एसपीसी = आराम से और fr = 26 # csharp) – bluish

+0

क्या मेरा डिम myObj MyNamespace के रूप में उपयोग करना संभव है। MyObject वीबीस्क्रिप्ट में वीबीए में आप कर सकते हैं तो आपको 'CreateObject' की आवश्यकता नहीं है? क्या कोई स्पष्ट संदर्भ है जो आप कर सकते हैं? – cheezsteak

2

हाँ आप सही पर ComVisible विशेषता सेट और फिर रजिस्टर विधानसभा regasm का उपयोग करने की आवश्यकता होगी या

इसके बाद आप से पंजीकृत करें tlbexp के साथ regsvcs। फिर आप Server.CreateObject का उपयोग कर सकते हैं और आगे बढ़ सकते हैं।

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