Где мой шаблон проекта 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 (библиотека проекта или пользовательский элемент управления) и в какой среде вы хотите его использовать, можно дать дополнительные советы.