Как вызвать Visual Basic.NET или Visual Basic 2005 сборки из Visual Basic 6.0

Переводы статьи Переводы статьи
Код статьи: 817248 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

ВВЕДЕНИЕ

В данной статье описывается, как использовать Microsoft Visual Basic.NET или Microsoft Visual Basic 2005 для построения управляемой сборки, которые могут вызываться в программе Visual Basic 6.0.

Дополнительная информация

Правила.NET типов для COM

При необходимости предоставить типы Microsoft.NET в Компонент модели объектов (COM) приложений, рассмотрите следующие COM-взаимодействия требования во время разработки. Управляемые типы)Класс, Интерфейс, struct, перечисленияи другие) взаимодействовать с приложениями клиента COM при вас Следуйте приведенным ниже рекомендациям:
  • Определение интерфейсов и явно реализовать в классах. COM-взаимодействие обеспечивает механизм автоматического создания интерфейса, содержит все члены класса и члены базового класса. Тем не менее, лучше предоставить явные интерфейсы и их реализации явным образом.
  • Объявите все управляемые типы, которые требуется предоставить модели COM как открытый. Регистрируются и экспортируются только открытые типы в сборке Библиотека типов. Таким образом только открытые типы видимы для COM.
  • Объявите все члены типа (методы, свойства, поля, и события) необходимо предоставить модели COM как public. Члены открытых типов должны также должны быть открытыми, чтобы быть видимым для COM. По умолчанию все открытые типы и члены видны. Использование ComVisibleAttribute атрибут, если необходимо скрыть тип или член из элемента управления тип или член видимость COM клиентским приложениям.
  • Типы должны иметь открытый конструктор по умолчанию для создан через управляемый COM. открытые типы видимы для COM. Тем не менее, без открытый конструктор по умолчанию (конструктор без аргументов) COM клиентам не удается создать экземпляр типа. Клиенты COM могут использовать Если тип создается другим способом и возвращается экземпляр COM-клиент. Может включать перегруженных конструкторов, принимающих различные аргументы для этих типов. Тем не менее конструкторы, принимающие аргументы могут только вызываться из управляемого (.Код (NET).
  • Типы не могут быть абстрактными. Ни один из COM-клиентов, ни.NET Клиенты могут создавать экземпляры абстрактных типов.
  • Использование COMClass шаблон в Visual Basic.NET или Visual Basic 2005. Когда вы Добавьте новый класс, который нужно предоставить COM-приложений, рассмотрите возможность использования очередь COMClass шаблон, предоставляемых Visual Basic.NET или Visual Basic 2005 Г. COMClass шаблон создает класс, который включает в себя COMClassAttribute атрибут и генерирует идентификаторы GUID для идентификатора CLSID, идентификатор интерфейса и код события, предоставляемые типом. Кроме того COMClass шаблон создает открытый конструктор без параметров. Это проще всего создать новый класс, который следует правилам для создания Вызываемой COM-типов.

Регистрация.NET сборки для COM-взаимодействия и создания библиотеки типов

Для Visual Basic 6.0 для успешного взаимодействия с управляемым компонент, необходимо зарегистрировать сборки для COM-взаимодействия и создания типа Библиотека. Такая регистрация должна выполняться на каждом компьютере, где COM клиентское приложение взаимодействует со сборкой. Библиотека типов содержит тип сведения о скрытых типов в сборку COM клиентским приложениям. Для этого процесса зависит при работе на разработку компьютер или на конечном компьютере.

На компьютере разработчика Microsoft Visual Studio.NET или Microsoft Visual Studio 2005 автоматически Создает библиотеку типов и регистрирует его в процессе построения, если Регистрация для COM-взаимодействия флажок в поле проекта Конфигурация свойства. Если используется COMClass шаблон при создании класса, Visual Studio.NET или Visual Автоматически выбирает Studio 2005 Регистрация для COM-взаимодействияфлажок. Убедитесь, что Регистрация для COM-взаимодействия загрузке флажок в Visual Studio.NET или в Visual Studio 2005, выполните следующие действия:
  1. Запустите Visual Studio.NET или Visual Studio 2005.
  2. Откройте решение, содержащее проект, который требуется для построения для COM-взаимодействия.
  3. На Представление меню, нажмите кнопку Решение Проводник.
  4. В обозревателе решений щелкните правой кнопкой мыши проект, который требуется для сборки для COM-взаимодействия и нажмите кнопкуСвойства.
  5. Нажмите кнопку Свойства конфигурации, а затем Перейдите на вкладку Построение узел.

    Примечание В Visual Studio 2005 нажмите кнопку Компиляция в левой части области.
  6. Выберите Регистрация для COM Взаимодействие флажок. Этот параметр доступен только в библиотеку классов проекты.
  7. Нажмите кнопку ОК Чтобы закрыть Свойство Страницы диалоговое окно.
Если Visual Studio.NET или Visual Studio 2005 не установлена или Если необходимо вручную создать и зарегистрировать файл библиотеки (.tlb) типа для управляемые сборки используется средство регистрации сборок (RegAsm.exe) с / TLB коммутатор. Кроме того, следует использовать / Codebase Если управляемая сборка является закрытой сборкой и коммутатора планируется поместить управляемую сборку в другую папку с хост-процесс (EXE).

Закрытые сборки развертываются вместе с приложением и является доступные для монопольного использования этого приложения. Другие приложения не общий доступ к закрытой сборки. Закрытые сборки предназначены для установки в той же папке, как хост-процесса (EXE). С помощью клиентского приложения COM Это означает, что сборка находится в той же папке этого приложения. Общая сборка доступна для использования несколькими приложениями на компьютер. Чтобы создать общую сборку, необходимо подписать сборку со строгим имя и установка сборки в глобальный кэш сборок (GAC) на конечный компьютер.

Для получения дополнительных сведений о подписи сборки со строгим именем и установка сборки в глобальный сборку Кэш (GAC), посетите следующий веб-узел корпорации Майкрософт:
http://msdn2.Microsoft.com/en-us/library/xc31ft41 (vs.71) .aspx
Следует использовать оба / tlb: Переключение и / Codebase переключение при регистрации сборки. В / tlb: Создает и регистрирует библиотеку типов и / Codebase коммутатор регистрирует расположение управляемую сборку в Реестр Windows. Если не используется / Codebase коммутатор и сборка не была установлена в глобальный Кэш сборок (GAC), необходимо поместить копию сборки в папку Каждый клиент COM-приложение (EXE) таким образом, чтобы сборка может находиться по Общеязыковая среда выполнения (CLR).

Для создания и регистрации библиотеки типов и зарегистрировать размещение управляемых сборок, введите следующую команду в командной строке:
Regasm AssemblyName.dll / tlb: FileName.tlb / codebase

Создание вызываемой сборки COM в Visual Basic.NET

  1. Запустите Visual Studio.NET или Visual Studio 2005.
  2. На Файл Выберите пунктНовый, а затем нажмите кнопку Проект.
  3. В группе Типы проектов, нажмите кнопку Visual Основные проекты.

    Примечание В Visual Studio2005, щелкните Visual Basic Из спискаТипы проектов.
  4. В группе Шаблоны, нажмите кнопку Класс Библиотека.
  5. Назовите проект TestProj и нажмите кнопкуОК.

    По умолчанию будет создан класс Class1.
  6. На Представление меню, нажмите кнопку Решение Проводник.
  7. Щелкните правой кнопкой мыши Файл Class1.vb, а затем нажмите кнопкуУдалить. Нажмите кнопку ОК Чтобы подтвердить удаление исходный файл Class1.vb.
  8. На Проект меню, нажмите кнопку Добавить Класс.
  9. В группе Шаблоны, нажмите кнопку COM Класс.
  10. Имя класса COMClass1.vb и нажмите кнопкуОткрыть

    COMClass1 создается следующим кодом.
    <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
  11. Добавьте следующую функцию COMClass1.
       Public Function myFunction() As Integer
          Return 100
       End Function
  12. В обозревателе решений щелкните правой кнопкой мышиНазвание проекта, а затем нажмите кнопкуСвойства.
  13. В группе Свойства конфигурации, нажмите кнопкуПостроение.
  14. Убедитесь, что Регистрация для COM-взаимодействияфлажок установлен и нажмите кнопку ОК.
  15. На Построение меню, нажмите кнопку Построение Решение для построения проекта.
  16. Для запуска Visual Basic 6.0.
  17. На Файл меню, нажмите кнопку Новый Проекти затем выберите Стандартный файл EXE В диалоговом окнеНовый проект диалоговое окно.

    По умолчанию форма, т.е. создать форму с именем Form1.
  18. На Проект меню, нажмите кнопкуСсылки.
  19. В Доступные ссылки список, Дважды щелкните, чтобы выбрать TestProj, а затем нажмите кнопкуОК.
  20. Добавьте кнопку на форму.
  21. Дважды щелкните значок Command1 Чтобы открыть код окно.
  22. Добавьте следующий код для Command1_Click событие.
    Dim myObject As TestProj.COMClass1
    Set myObject = New TestProj.COMClass1
    MsgBox myObject.myFunction
  23. На Запустить меню, нажмите кнопкуНачало.
  24. Нажмите соответствующую кнопку.

    Должно появиться сообщение, отображающее 100.

Ссылки

Для получения дополнительных сведений посетите следующий веб-узла корпорации Майкрософт веб-узел:
Взаимодействие с неуправляемым кодом
http://msdn2.Microsoft.com/en-us/library/sd10k43k (vs.71) .aspx

Свойства

Код статьи: 817248 - Последний отзыв: 14 июня 2011 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft .NET Framework 2.0
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
Ключевые слова: 
kbvs2005applies kbvs2005swept kbnamespace kbdll kbcominterop kbinterop kbautomation kbhowtomaster kbmt KB817248 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:817248

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com