2009-04-20 28 views
10

Sunucumda sunucum var, dolayısıyla kullanıcı arabiriminde etkileşim yok ve konsol uygulaması yerine DLL kullanmalıyım.VBScript'ten C# DLL işlevi nasıl çağrılır?

VBScript'ten C# DLL'de bir işlev nasıl çağrılır?

DLL'imi COMVisible olarak nasıl yapabilirim? Kayıt yaptırmalı mıyım?

+0

Bu yardımcı olur mu? http://stackoverflow.com/questions/9004352/call-a-function-in-a-console-app-from-vbscript – xameeramir

cevap

21

COMVisibleAttribute değerini true olarak ayarlayarak, derlemenizi COM görünür olarak işaretlemeniz gerekir (yalnızca tek bir tür göstermek istiyorsanız, derleme düzeyinde veya sınıf düzeyinde).

regasm /codebase MyAssembly.dll 

ve son olarak VBScript çağrı:

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

Ayrıca bkz. [.NET Bileşenlerini COM'a Aktarma] (http://www.codeproject.com/Makaleler/3511/Exposure-NET-Components-to-COM? Fid = 14076 & df = 90 & mpp = 25 & noise = 3 & prof = False & sort = Konum ve görünüm = Hızlı ve spc = Rahat ve fr = 26 # csharp) – bluish

+0

'MyObj olarak MyNamespace.MyObject kullanmak mümkün mü? VBScript'te VBA'da yapabileceğiniz gibi 'CreateObject''e ihtiyacınız yok mu? Yapabileceğiniz açık bir referans var mı? – cheezsteak

2

Evet regasm kullanarak derleme kaydetmek sonra true ComVisible özelliğini ayarlamak ve gerekecektir veya

Sonra kaydettirmeniz tlbexp ile birlikte regsvcs. Daha sonra Server.CreateObject'u kullanabilir ve yelken açabilirsiniz.

İlgili konular