Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2011, 11:08   #1
IntoTheRain
Новичок
Джуниор
 
Регистрация: 14.08.2009
Сообщений: 2
Вопрос Regsvr32 или как зарегать DLL?

Привет всем, прошу помочь:

Есть библиотека DLL написана на .NET в ней есть методы интересные мне, но проблема в том что я не могу юзать эту библиотеку через COM ибо она для этого не предназначена.

Я сделал следующим образом создал DLL в VB в нем класс COM CLASS, подцепил DLL на .NET. В COM CLASS написал функцию Count() которая работает с методами в .NET DLL скомпилировал получилось 2 DLL и еще пару файлов. В своей программе СЭД создаю CreateObject(MyDLL.COMCLASS) все в порядке, функцию Count() вызваю, она работает.

А теперь вопрос, при переносе на другую машину как регистрировать эти/эту DLL для обращения к ней? Regsvr32 не работает, работает RegASm но почему так, почему комовская DLL не регается через RegSvr32?



Код:
<ComClass(LicenseManagerClass.ClassId, LicenseManagerClass.InterfaceId, LicenseManagerClass.EventsId)> _
Public Class LicenseManagerClass

#Region "Идентификаторы COM GUID"
    ' Данные GUID обеспечивают идентификацию COM для данного класса
    ' и его COM-интерфейсов. При их изменении существующие
    ' клиенты потеряют доступ к классу.
    Public Const ClassId As String = "3fe6182a-5b19-48a5-8727-6d1ae129c07d"
    Public Const InterfaceId As String = "83e263c7-a879-4891-9bba-a69de4d92ce6"
    Public Const EventsId As String = "fce7f153-0a52-4254-9221-dee24d28eb1a"
#End Region

    ' В классе COM, для которого разрешено создание, должна присутствовать процедура Public Sub New()
    ' без параметров, иначе класс не будет
    ' зарегистрирован в реестре COM и его будет невозможно создать
    ' посредством CreateObject.
    Public Sub New()
        MyBase.New()
    End Sub


    Public Function Count(ServerName As String, DBName As String) As Integer
        Count = SBSessionServerManager.TSBSessionServerManager.Instance.GetAvailableLicensesCount(ServerName, DBName)
    End Function


End Class
IntoTheRain вне форума Ответить с цитированием
Старый 30.05.2011, 19:51   #2
Spawn™Production®
Форумчанин
 
Аватар для Spawn™Production®
 
Регистрация: 06.05.2011
Сообщений: 287
По умолчанию

Библиотеки написанные на VB не регистрируются в принципе.
Можно сделать .NET библиотеку ComVisible, реализовать нужные интерфейсы, а затем уже регистрировать через RegAsm и использовать.
Spawn™Production® вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DirectX .dll или .pas ? _PROGRAMM_ Gamedev - cоздание игр: Unity, OpenGL, DirectX 9 19.01.2011 07:24
Массив в dll - как разместить массив в dll и как вызвать элемент этого массива по индексу? Кинельски Помощь студентам 0 23.05.2010 20:52
Как зарегать новую аську? TwiX Работа с сетью в Delphi 10 22.09.2009 01:43
как зарегать себе услугу (отправте смс с кодом) KWN, lnc Свободное общение 1 29.04.2009 16:18
DLL или как работать со стороней программой??? nimf Общие вопросы Delphi 2 15.04.2008 17:11