Поделиться через


Пошаговое руководство. Создание COM-объектов с помощью Visual Basic

При создании новых приложений или компонентов рекомендуется создавать сборки .NET Framework. Однако Visual Basic также упрощает экспонирование компонента .NET Framework для COM. Это позволяет предоставлять новые компоненты для более ранних наборов приложений, требующих com-компонентов. В этом пошаговом руководстве показано, как использовать Visual Basic для представления объектов .NET Framework в виде COM-объектов как с использованием шаблона класса COM, так и без него.

Самый простой способ предоставления COM-объектов — использовать шаблон класса COM. Этот шаблон создает новый класс, а затем настраивает проект для создания класса с уровнем взаимодействия в качестве COM-объекта и регистрирует его в операционной системе.

Замечание

Несмотря на то что можно также предоставить класс, созданный в Visual Basic в качестве COM-объекта для использования неуправляемого кода, он не является истинным COM-объектом и не может использоваться Visual Basic. Дополнительные сведения см. в статье о взаимодействии COM в приложениях .NET Framework.

Замечание

На компьютере могут отображаться различные имена или расположения для некоторых элементов пользовательского интерфейса Visual Studio в следующих инструкциях. Выпуск Visual Studio, который у вас есть, и параметры, которые вы используете, определяют эти элементы. Дополнительные сведения см. в разделе Персонализация интегрированной среды разработки.

Создание com-объекта с помощью шаблона класса COM

  1. Откройте новый проект приложения Windows в меню "Файл ", нажав кнопку "Создать проект".

  2. В диалоговом окне "Создать проект " в поле "Типы проектов " установите флажок "Windows". Выберите библиотеку классов из списка шаблонов и нажмите кнопку "ОК". Отображается новый проект.

  3. Выберите "Добавить новый элемент" в меню "Проект ". Откроется диалоговое окно Добавление нового элемента .

  4. Выберите класс COM из списка шаблонов и нажмите кнопку "Добавить". Visual Basic добавляет новый класс и настраивает новый проект для взаимодействия COM.

  5. Добавьте код, например свойства, методы и события в класс COM.

  6. Выберите Сборка ClassLibrary1 в меню Сборка. Visual Basic создает сборку и регистрирует COM-объект в операционной системе.

Создание COM-объектов без шаблона класса COM

Можно также создать класс COM вручную, а не с помощью шаблона класса COM. Эта процедура полезна при работе с командной строкой или при желании большего контроля над определением COM-объектов.

Настройка проекта для создания COM-объекта

  1. Откройте новый проект приложения Windows в меню "Файл ", нажав кнопку NewProject.

  2. В диалоговом окне "Создать проект " в поле "Типы проектов " установите флажок "Windows". Выберите библиотеку классов из списка шаблонов и нажмите кнопку "ОК". Отображается новый проект.

  3. В обозревателе решений щелкните проект правой кнопкой мыши и выберите пункт "Свойства". Отображается конструктор проектов .

  4. Щёлкните вкладку Компиляция.

  5. Установите флажок «Регистрация для взаимодействия с COM».

Настройка кода в классе для создания COM-объекта

  1. В обозревателе решений дважды щелкните Class1.vb , чтобы отобразить свой код.

  2. Переименуйте класс ComClass1в .

  3. Добавьте в нее следующие константы ComClass1. Они будут хранить константы глобально уникального идентификатора (GUID), которые должны иметь объекты COM.

    Public Const ClassId As String = ""
    Public Const InterfaceId As String = ""
    Public Const EventsId As String = ""
    
  4. В меню "Сервис" нажмите кнопку "Создать GUID". В диалоговом окне "Создать GUID" щелкните "Формат реестра " и нажмите кнопку "Копировать". Нажмите кнопку Выход.

  5. Замените пустую строку в ClassId на GUID, удаляя начальные и конечные фигурные скобки. Например, если ИДЕНТИФИКАТОР GUID, предоставленный Guidgen, равен "{2C8B0AEE-02C9-486e-B809-C780A11530FE}", тогда ваш код должен выглядеть следующим образом.

    Public Const ClassId As String = "2C8B0AEE-02C9-486e-B809-C780A11530FE"
    
  6. Повторите предыдущие шаги для InterfaceId констант и EventsId констант, как показано в следующем примере.

    Public Const InterfaceId As String = "3D8B5BA4-FB8C-5ff8-8468-11BF6BD5CF91"
    Public Const EventsId As String = "2B691787-6ED7-401e-90A4-B3B9C0360E31"
    

    Замечание

    Убедитесь, что GUID новые и уникальные; в противном случае ваш компонент COM может конфликтовать с другими компонентами COM.

  7. Добавьте атрибут ComClassвComClass1, указав идентификаторы GUID для идентификатора класса, идентификатора интерфейса и идентификатора событий, как показано в следующем примере:

    <ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)>
    Public Class ComClass1
    
  8. Классы COM должны иметь конструктор без Public Sub New() параметров, или класс не будет регистрироваться правильно. Добавьте конструктор без параметров в класс:

    Public Sub New()
        MyBase.New()
    End Sub
    
  9. Добавьте свойства, методы и события в класс, завершив его оператором End Class . Выберите "Создать решение" в меню "Сборка". Visual Basic создает сборку и регистрирует COM-объект в операционной системе.

    Замечание

    Создаваемые с помощью Visual Basic объекты COM нельзя использовать другими приложениями Visual Basic, так как они не являются истинными COM-объектами. Попытки добавить ссылки на такие COM-объекты вызовут ошибку. Дополнительные сведения см. в разделе "Взаимодействие COM" в приложениях .NET Framework.

См. также