Знакомство с COM-взаимодействием
Обновлен: Ноябрь 2007
Модель COM позволяет объекту предоставлять его функциональность другим компонентам и приложениям хоста. Несмотря на то, что объекты COM в течение многих лет служили основой программирования в Windows, приложения, разработанные для среды CLR, имеют много преимуществ.
Приложения .NET Framework непременно заменят в будущем приложения, разработанные с применением COM. До этого, возможно, придется использовать или создавать объекты COM с помощью Visual Studio. Возможность взаимодействия с COM, или COM-взаимодействие, позволяет использовать существующие объекты COM при постепенном переходе к .NET Framework.
Используя .NET Framework для создания компонентов COM, можно использовать COM-взаимодействие без регистрации. Это позволяет управлять тем, какая версия DLL включена, когда более чем одной версии установлено на компьютере, и позволяет конечным пользователям использовать XCOPY или FTP, чтобы скопировать приложение в соответствующий каталог на своем компьютере, где его можно запустить. Дополнительные сведения см. в разделе COM-взаимодействие без регистрации.
Управляемый код и данные
Код, разработанный для .NET Frameworkуправляемого кода, содержит метаданные, которые используются средой CLR. Данные, используемые приложениями .NET Framework, называют управляемыми данными, так как среда выполнения управляет задачами, связанными с данными, такими как выделение и освобождение памяти и проверка типов. По умолчанию Visual Basic 2005 использует управляемый код и данные, но можно получить доступ к неуправляемому коду и данным объектов COM при помощи сборок взаимодействия (описываемых далее на этой странице).
Сборки
Сборка является основным стандартным блоком .NET Framework приложения. Это коллекция функциональных элементов, которые уже созданы, обновлены и развернуты как отдельный модуль реализации, содержащий один или несколько файлов. В каждой сборке содержится манифест сборки.
Библиотеки типов и манифесты сборок
Библиотеки типов описывают характеристики объектов COM, такие как имена членов и типы данных. Манифесты сборки выполняют аналогичную функцию для .NET Framework приложений. Они включают сведения о следующем:
Идентификация сборки, версия, язык и региональные параметры, цифровая подпись.
Файлы, формирующие реализацию сборки.
Типы и ресурсы, образующие сборку. Они включают то, что экспортируется из нее.
Зависимости от других сборок во время компиляции.
Разрешения, необходимые сборке для правильного запуска
Дополнительные сведения о сборках и манифестах сборки содержатся в разделе Сборки.
Импорт и экспорт библиотек типов
Visual Studio содержит программу Tlbimp, которая позволяет импортировать информацию из библиотеки типов в приложение .NET Framework. Можно создавать библиотеки типов из сборок при помощи программы Tlbexp.
Сведения о Tlbimp и Tlbexp содержатся в Программа импорта библиотек типов (Tlbimp.exe)Программа экспорта библиотек типов (Tlbexp.exe).
Сборки взаимодействия
Сборки взаимодействия являются сборками .NET Framework, которые действуют как мост между управляемым и неуправляемым кодом, отображая члены объекта COM эквивалентными управляемым членам .NET Framework. Сборки взаимодействия, созданные Visual Basic 2005, управляют многими деталями работы с объектами COM, например маршалингом взаимодействия.
Маршалинг взаимодействия
Все приложения .NET Framework используют набор общих типов, что позволяет объектам взаимодействовать независимо от используемого языка программирования. Параметры и возвращаемые значения объектов COM иногда используют типы данных, которые отличаются от используемых в управляемом коде. Маршалинг взаимодействия — это процесс упаковки параметров и возвращения значений в эквивалентных типах данных при передаче в объекты COM и получении из объектов COM. Дополнительные сведения см. в разделе Общие сведения о маршалинге взаимодействия.
См. также
Задачи
Пошаговое руководство. Реализация наследования с использованием объектов COM
Устранение неполадок взаимодействия
Основные понятия
Общие сведения о маршалинге взаимодействия
Ссылки
Программа импорта библиотек типов (Tlbimp.exe)
Программа экспорта библиотек типов (Tlbexp.exe)