Пишем минимальный COM-сервер на VB.NET. По мотивам и в продолжение статьи Использование консольного компилятора .NET Framework для создания приложений.
Создаём текстовый файл с расширением .vb следующего содержания:
Imports System
Imports System.Reflection
<Assembly:AssemblyKeyFile("./Key.sn")>
<Assembly:AssemblyVersion("1.0.0.0")>
Namespace TestComponentLib
Public Interface ITestComponent
Function Mult (x As Integer, y As Integer) As Integer
ReadOnly Property About() As String
End Interface
Public class TestComponent
Implements ITestComponent
Public Function Mult (x As Integer, y As Integer) As Integer Implements ITestComponent.Mult
Mult = x * y
End Function
Public ReadOnly Property About() As String Implements ITestComponent.About
Get
Return "Этот COM-сервер написан на VB.NET."
End Get
End Property
End Class
End Namespace
Как видно из кода, наш COM-сервер TestComponentLib.TestComponent будет поддерживать свойство только для чтения About, которое возвращает строку, а также метод Mult, который перемножает два полученных аргумента и возвращает результат.
Файл Key.sn, который должен находиться рядом с нашим исходником, содержит пару криптографических ключей, которые будут идентифицировать нашу сборку в GAC (Global Assembly Cache - Глобальный кэш сборок). Этот файл можно сгенерировать примерно такой командой:
Откомпилировать наш COM-сервер можно примерно такой командой:
"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\vbc.exe" "c:\temp\test.vb" /out:"c:\temp\test.dll" /target:library
После этого зарегистрировать наш COM-сервер можно примерно такой командой:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>regasm c:\temp\test.dll
И наконец, поместить наш COM-сервер в GAC (Global Assembly Cache) можно примерно такой командой:
gacutil /i c:\temp\test.dll
После всего этого будет работать такой код на VBScript:
Set objTest = CreateObject("TestComponentLib.TestComponent")
WScript.Echo objTest.About
WScript.Echo objTest.Mult(3, 4)
Как видно, написать COM-сервер на VB.NET не просто, а очень просто . И вполне возможно обойтись для этого только стандартной установкой .NET Framework, парочкой бесплатных консольных утилит, не требующих установки (sn.exe и gacutil.exe находятся во вложении этого поста) и любым текстовым редактором.
Post's attachmentsutils.zip 87.01 kb, 642 downloads since 2008-02-17
You don't have the permssions to download the attachments of this post.
Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.