Я скомпилировал код C# в DLL, но у меня мало опыта с ними. Мой код C# содержит класс HelloWorld
со статическим методом Print()
. Я хотел бы использовать эту DLL в VBScript для вызова метода Print()
. Я знаю, что это база, но я использую это как тест для проекта большего масштаба, который в итоге будет скомпилирован в DLL. Как выглядит объявление для этого и как будет выглядеть вызов метода?Использование DLL в VBScript
ответ
Если длл зарегистрирован в системе, используйте CreateObject
с его ProgID.
Set myObject = CreateObject("MyReallyCoolObject.HelloWorld")
myObject.Print
Если объект не зарегистрирован в системе, используйте GetObject
с пути к файлу, содержащему ваш объект. Убедитесь, что ваш объект предоставляет правильный интерфейс. (Второй параметр является необязательным. Здесь вы можете указать имя класса, если ваш объект предоставляет больше, чем один.)
Set myObject = GetObject("C:\some\path\helloworld.dll", "appname.HelloWorld")
myObject.Print
Спасибо! Это должно работать великолепно. – steventnorris
Я только преуспел, используя regasm, а затем 'CreateObject'. Я никогда не мог сделать работу «GetObject». Я что-то упускаю? Благодаря! – bluish
Когда я ввожу два параметра: У меня есть ошибка: _ ** Компонент ActiveX не может создать объект «GetObject». ** _ Когда я ввожу только первый параметр: Я получил: _ ** Имя файла или имя класса не найденный во время автоматизации. ** _ – HighTechProgramming15
Хорошо, так вот как зарегистрировать DLL с сервером/системой в целом, но как я могу прямо объявить/вызвать dll в VBScript? Я прочитал приведенную ниже ссылку, которая, кажется, говорит, что это возможно, но как бы это объявить, если бы это было для статического метода класса? http://support.microsoft.com/kb/106553 – steventnorris
Ваша ссылка рассказывает о визуальной базовой. не vbscript. и на ваш вопрос уже был дан ответ: http://stackoverflow.com/a/769346/736170 –
Эта ссылка не отвечает на мой вопрос. И приношу извинения за смешение языков. Мне это нужно для VBScript, но я предположил, что будет аналогичный процесс. Я хочу вызвать dll из моего сценария без регистрации на сервере. Он должен динамически загружаться во время выполнения из пути к файлу. – steventnorris
Я думаю, что вы могли бы искать Registration-Free COM. Этот ответ SO в отношении Microsoft.Windows.ActCtx должен помочь специально для VBScript.
Имейте в виду, что COM не поддерживает статические методы, поэтому вам придется применить метод Print к методу экземпляра.
- 1. VBscript не находит dll
- 2. Вызов C# dll в vbscript
- 3. Использование VBScript GetObject в C#
- 4. Использование case в vbScript
- 5. Использование HTA в vbscript
- 6. Использование xcopy в VBScript
- 7. Доступ к пользовательской .NET DLL в VBScript
- 8. как позвонить в C# DLL из VBScript
- 9. Как вызвать функцию DLL в vbscript
- 10. Показать WinForm (C#) из DLL в vbscript
- 11. Использование функции Com + (VBScript) в функции SQL
- 12. Использование оператора А в VBscript
- 13. Использование формулы R1C1 в VBSCRIPT
- 14. Использование BackgroundWorker из VBScript
- 15. Использование System.Globalization.CultureInfo из VBScript
- 16. VBScript - Использование обработки ошибок
- 17. C# DLL из VBScript, не Regasm
- 18. Как вызвать функцию C# DLL из VBScript
- 19. .Net Замена для VBScript (interop.msscriptcontrol.dll) DLL
- 20. Использование обработчика в DLL
- 21. Использование DLL в C
- 22. Использование DLL в NASM
- 23. Использование WinUSB в DLL?
- 24. Использование DLL в C#
- 25. Использование dll в matlab
- 26. Использование DLL в CPP
- 27. Использование DLL в PHP?
- 28. Использование флагов в методе CopyHere в VBscript
- 29. Использование значений сеанса внутри VBScript
- 30. VBScript: использование переменной в элементе DOM
Возможный дубликат [Как вызвать функцию DLL C# из VBScript] (http://stackoverflow.com/questions/769332/how-to-call-c-sharp-dll-function-from-vbscript) – JeffO
Я сделал проверьте эту ссылку, но она не совсем подходит к тому, что я хочу. Я хочу динамически загружать dll во время выполнения через VBScript из заданного пути к файлу, а не регистрироваться на сервере. Опять же, dlls очень новы для меня, так что это может быть то, что происходит в этом ответе, я просто этого не вижу. – steventnorris