Где мой шаблон проекта ActiveX DLL в VS 2005?

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

4 ответа

Пара понятий; Сборки.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 есть много разных мастеров, которые помогут вам с утомительными деталями.

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

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

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

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

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

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

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

Другие вопросы по тегам