2009-04-20 72 views
10

Tôi có tập lệnh trên máy chủ, vì vậy tôi không có giao diện người dùng có sẵn và phải sử dụng DLL thay vì ứng dụng bảng điều khiển.Cách gọi hàm C# DLL từ VBScript

Cách gọi hàm trong C# DLL từ VBScript?

Làm cách nào để làm cho tệp DLL của tôi là COMVisible? Tôi có phải đăng ký không?

+0

Ứng dụng có trợ giúp không? http://stackoverflow.com/questions/9004352/call-a-function-in-a-console-app-from-vbscript – xameeramir

Trả lời

21

Bạn cần đánh dấu hội đồng của mình là COM hiển thị bằng cách đặt COMVisibleAttribute thành đúng (ở cấp lắp ráp hoặc ở cấp lớp nếu bạn muốn chỉ hiển thị một loại duy nhất).

Tiếp theo, bạn đăng ký với:

regasm /codebase MyAssembly.dll 

và cuối cùng gọi nó từ VBScript:

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

Xem thêm [Exposing .NET Components to COM] (http://www.codeproject.com/Articles/3511/Exposing-NET-Components-to-COM? Fid = 14076 & df = 90 & mpp = 25 & noise = 3 & prof = False & sort = Vị trí & view = Quick & spc = Relaxed & fr = 26 # csharp) – bluish

+0

Có thể sử dụng 'Dim myObj As MyNamespace.MyObject 'trong VBScript như bạn có thể trong VBA, do đó bạn không cần' CreateObject'? Có một tài liệu tham khảo rõ ràng bạn có thể thực hiện? – cheezsteak

2

Có bạn sẽ cần phải thiết lập các ComVisible thuộc tính là true và sau đó đăng ký lắp ráp bằng cách sử dụng regasm hoặc regsvcs cùng với tlbexp. Sau đó, bạn có thể sử dụng Server.CreateObject và đi qua.

Các vấn đề liên quan