где мой шаблон проекта ActiveX DLL в VS 2005? - PullRequest
1 голос
/ 21 ноября 2008

В VB6 ActiveX DLL указана в качестве шаблона проекта, но в VS 2005+ такого нет. Где мой старый добрый шаблон ActiveX DLL? Большое спасибо заранее.

Ответы [ 4 ]

2 голосов
/ 21 ноября 2008

пара понятий; Сборки .NET являются функциональным эквивалентом DLL-библиотек ActiveX в языках .NET. Классы и метод .NET могут быть украшены атрибутами, которые имеют различное значение в разных контекстах. Сборку .NET можно превратить в ActiveX / COM DLL (или OCX), используя различные атрибуты для назначения правильных идентификаторов GUID.

Базовый обзор настройки COM для сборки .NET: здесь .

Обратите внимание, что при поиске в Google вы должны включать VB6 .NET и COM (не ActiveX). COM генерирует больше хитов, поскольку это основная технология, стоящая за термином ActiveX.

В статье MSDN, которую я связал, показана базовая настройка COM для .NET Class. Атрибутом здесь является атрибут ComClass.

<ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)> _
Public Class ComClass1

#Region "COM GUIDs"
    ' These  GUIDs provide the COM identity for this class 
    ' and its COM interfaces. If you change them, existing 
    ' clients will no longer be able to access the class.
    Public Const ClassId As String = "6DB79AF2-F661-44AC-8458-62B06BFDD9E4"
    Public Const InterfaceId As String = "EDED909C-9271-4670-BA32-109AE917B1D7"
    Public Const EventsId As String = "17C731B8-CE61-4B5F-B114-10F3E46153AC"
#End Region

    ' A creatable COM class must have a Public Sub New() 
    ' without parameters. Otherwise, the class will not be 
    ' registered in the COM registry and cannot be created 
    ' through CreateObject.
    Public Sub New()
        MyBase.New()
    End Sub

End Class

Существуют и другие атрибуты, которые особенно полезны, если вы пытаетесь заменить сборку .NET для существующей COM DLL или OCX. Наконец, в .NET есть много разных мастеров, которые помогут вам с утомительными подробностями.

1 голос
/ 21 ноября 2008

Попробуйте это: http://msmvps.com/blogs/pauldomag/archive/2006/08/16/107758.aspx

В нем описано, как создать элемент управления activex и использовать его на веб-странице. Насколько я знаю, в действительности нет шаблона проекта ActiveX, поскольку .NET делает это по-другому. Однако вы можете сделать свои элементы управления .Net видимыми для мира COM, что иллюстрирует статья выше.

0 голосов
/ 17 декабря 2008

Я не знаю, пытаетесь ли вы это делать или нет. Но если вы щелкнете правой кнопкой мыши по Toolbox в Visual Studio, во всплывающем меню выберите Выбрать элемент…

Когда появится диалоговое окно «Выбор элемента панели инструментов» , выберите вкладку «Компоненты COM» и отметьте компоненты COM, которые вы хотите добавить в ящик для инструментов. Я сделал это, чтобы добавить «Windows Media Player» на панель инструментов и использовал его в C # Winform.

В этом диалоговом окне вы можете получить доступ к любому элементу управления COM, OCX или ActiveX, загруженному в вашу систему.

0 голосов
/ 22 ноября 2008

Это не совсем понятный вопрос, но если вы хотите иметь возможность использовать в VB6 (или в какой-либо другой среде com) что-то, созданное в VS2005, вам нужно взглянуть на Interop Forms Toolkit . Это значительно упрощает взаимодействие между VB6 и VS2005. Теперь, если вы действительно хотите распространять эти приложения, установка созданного вами приложения станет намного более увлекательной (Подсказки: не используйте GAC, установите .Net dll в тот же каталог, где находится исполняемый файл вашего приложения, и научитесь использовать RegAsm.)

Если вы дадите небольшое описание того, для чего вы хотите использовать ActiveX.dll (библиотека проекта или пользовательский элемент управления) и в какой среде вы хотите его использовать, можно дать дополнительные рекомендации.

...