Skompilowałem kod C# do biblioteki DLL, ale nie mam z tym większego doświadczenia. Mój kod C# zawiera klasę HelloWorld
ze statyczną metodą Print()
. Chciałbym użyć tej biblioteki DLL w VBScript, aby wywołać metodę Print()
. Wiem, że to podstawa, ale używam tego jako testu dla projektu na większą skalę, który zostanie skompilowany do biblioteki DLL w końcu. Jak wygląda deklaracja i jak wygląda wywołanie metody?Używanie bibliotek DLL w VBScript
Odpowiedz
Jeśli dll jest zarejestrowany w systemie, należy użyć CreateObject
z jego ProgID.
Set myObject = CreateObject("MyReallyCoolObject.HelloWorld")
myObject.Print
Jeśli obiekt nie jest zarejestrowany w systemie, należy użyć GetObject
ze ścieżką do pliku zawierającego swój obiekt. Upewnij się, że twój obiekt udostępnia właściwy interfejs. (Drugi parametr jest opcjonalny. Tutaj można podać nazwę klasy, jeśli obiekt odsłania więcej niż jeden.)
Set myObject = GetObject("C:\some\path\helloworld.dll", "appname.HelloWorld")
myObject.Print
Dzięki! To powinno zadziałać znakomicie. – steventnorris
Udało mi się tylko użyć regresji, a następnie 'CreateObject'. Nigdy nie mogłem wykonać pracy "GetObject". Czy czegoś brakuje? Dzięki! – bluish
Po wprowadzeniu dwóch parametrów: Wystąpił błąd: _ ** Składnik ActiveX nie może utworzyć obiektu "GetObject". ** _ Kiedy wpisuję tylko pierwszy parametr: Otrzymałem: _ ** Nazwa pliku lub nazwa klasy nie znalezione podczas automatyzacji. ** _ – HighTechProgramming15
Ok, więc to w jaki sposób zarejestrować DLL z serwera/systemu jako całości, ale jak mógłbym bezpośrednio zadeklarować/wywołać dll w VBScript? Przeczytałem poniższy link, który wydaje się mówić, że jest to możliwe, ale jak by wyglądało, gdyby było to dla statycznej metody klasy? http://support.microsoft.com/kb/106553 – steventnorris
Twój link mówi o visual basic. nie vbscript. i twoje pytanie zostało już odebrane: http://stackoverflow.com/a/769346/736170 –
Ten link nie odpowiada na moje pytanie. I przepraszam za zamieszanie językowe. Potrzebuję tego dla VBScript, ale założyłem, że będzie podobny proces. Chcę wywołać bibliotekę dll z mojego skryptu bez konieczności rejestrowania się na serwerze. Powinien być ładowany dynamicznie w środowisku wykonawczym ze ścieżki pliku. – steventnorris
myślę, że może być szukasz Registration-Free COM. Ta odpowiedź SO dotycząca Microsoft.Windows.ActCtx powinna pomóc w szczególności dla VBScript.
Należy pamiętać, że model COM nie obsługuje metod statycznych, dlatego należy wprowadzić metodę drukowania do metody instancji.
- 1. Wywoływanie C# dll w vbscript
- 2. Opóźnienie Ładowanie bibliotek DLL
- 3. Używanie różnych bibliotek DLL do debugowania i kompilacji wydania
- 4. Przekroczono maksymalną liczbę bibliotek DLL w R
- 5. Wymagania dotyczące bibliotek środowiska wykonawczego wysyłania/bibliotek DLL
- 6. Zmiana ścieżki wyszukiwania DLL dla statycznie połączonych bibliotek DLL
- 7. Dostęp do niestandardowej biblioteki DLL .NET w VBScript
- 8. Błąd: Maksymalna liczba bibliotek DLL osiągniętych
- 9. Dowiedz się zależności wszystkich bibliotek DLL?
- 10. Używanie niestandardowych przestrzeni nazw XML do odwoływania się do zewnętrznych bibliotek DLL w Kaxaml
- 11. Ładowanie bibliotek DLL w środowisku wykonawczym w języku C#
- 12. Brak IntelliSense w App_Code, dla bibliotek DLL w projekcie WWW
- 13. Liczba XPath w VBScript
- 14. Czy jest możliwe wykonanie zestawu .NET (dll) z vbscript?
- 15. Używanie tlbexp.exe na dll COM
- 16. Jak utworzyć biblioteki DLL w programie Matlab i używać tych bibliotek DLL w aplikacjach .Net
- 17. Jak korzystać z zewnętrznych bibliotek DLL w projekcie CMake
- 18. Używanie dwóch bibliotek DLL o tej samej nazwie i tej samej przestrzeni nazw
- 19. Używanie biblioteki DLL GPL v2 w aplikacji
- 20. Używanie domyślnego słowa kluczowego w bibliotece DLL
- 21. Używanie biblioteki dll x64 w aplikacji x86
- 22. Używanie biblioteki DLL Delphi w C#
- 23. Używanie programu VirtualPathProvider do ładowania widoków MVC ASP.NET z bibliotek DLL
- 24. Używanie VBScript do znalezienia najnowszej daty pliku w jednym folderze
- 25. Używanie CXXI do owijania bibliotek C++
- 26. Tworzenie i używanie bibliotek Bitcode LLVM
- 27. VS2010: Ładowanie symboli z bibliotek dll bardzo powolne
- 28. Użycie profilera "Bardzo śpiący" do profilowania bibliotek DLL
- 29. Jak uzyskać nazwy bibliotek DLL używanych przez aplikację
- 30. Jak znaleźć ścieżkę do bibliotek DLL używanych przez bibliotekę available_output?
możliwy duplikat [Jak wywołać funkcję C# DLL z VBScript] (http://stackoverflow.com/questions/769332/how-to-call-c-sharp-dll-function- from-vbscript) – JeffO
Zrobiłem sprawdź ten link, ale nie całkiem dostaję to, czego chcę. Szukam dynamicznie ładować bibliotekę dll w środowisku wykonawczym przez VBScript z danego pliku, zamiast rejestrowania się na serwerze. Ponownie, biblioteki dll są dla mnie bardzo nowe, więc może to być to, co dzieje się w tej odpowiedzi, po prostu tego nie widzę. – steventnorris