Я скомпилировал код C # в DLL, но у меня мало опыта работы с ними. Мой код C # содержит класс HelloWorld
со статическим методом Print()
. Я хотел бы использовать эту DLL в VBScript для вызова метода Print()
. Я знаю, что это база, но я использую это как тест для более крупного проекта, который в конце концов будет скомпилирован в DLL. Как для этого будет выглядеть объявление и как будет выглядеть вызов метода?
Использование DLL в VBScript
- возможный дубликат Как вызвать функцию C # DLL из VBScript 23.03.2012
- Я действительно проверял эту ссылку, но она не совсем понимает то, что мне нужно. Я хочу динамически загружать dll во время выполнения через VBScript из заданного пути к файлу, а не регистрироваться на сервере. Опять же, библиотеки DLL для меня в новинку, так что это может быть то, что происходит в этом ответе, я просто не вижу этого. 23.03.2012
Ответы:
Важно: оба метода будут работать, только если DLL предоставляет COM-интерфейс.
Если ваша dll зарегистрирована в системе, используйте CreateObject
с ее ProgID.
Set myObject = CreateObject("MyReallyCoolObject.HelloWorld")
myObject.Print
Если ваш объект не зарегистрирован в системе, используйте GetObject
для указания пути к файлу, содержащему ваш объект. Убедитесь, что ваш объект предоставляет правильный интерфейс. (Второй параметр является необязательным. Здесь вы можете указать имя класса, если ваш объект предоставляет более одного.)
Set myObject = GetObject("C:\some\path\helloworld.dll", "appname.HelloWorld")
myObject.Print
Думаю, вы ищете COM без регистрации. Этот SO-ответ относительно Microsoft.Windows.ActCtx должен помочь специально для VBScript.
Имейте в виду, что COM не поддерживает статические методы, поэтому вам придется превратить свой метод Print в метод экземпляра.
Как вызвать .NET DLL из VBScript
CreateObject
. Я никогда не мог заставитьGetObject
работать. Я что-то упускаю? Спасибо! 22.10.2012