Смешанные (собственные и управляемые) сборки

Смешанные сборки могут содержать как неуправляемые инструкции компьютера, так и инструкции MSIL. Это позволяет вызывать и вызывать их компонентами .NET, сохраняя совместимость с собственными библиотеками C++. С помощью смешанных сборок разработчики могут создавать приложения с помощью сочетания кода .NET и собственного кода C++.

Например, существующую библиотеку, состоящую полностью из собственного кода C++, можно перевести на платформу .NET, перекомпиляв только один модуль с параметром компилятора /clr . Затем этот модуль может использовать функции .NET, но остается совместимым с остальными компонентами приложения. Даже можно решить между управляемой и собственной компиляцией на основе функции в одном файле (см . управляемые, неуправляемые).

Visual C++ поддерживает только создание смешанных управляемых сборок с помощью параметра компилятора /clr . Параметры компилятора /clr:pure и /clr:safe компилятора устарели в Visual Studio 2015 и не поддерживаются в Visual Studio 2017. Если вам требуются чистые или проверяемые управляемые сборки, рекомендуется создать их с помощью C#.

Более ранние версии набора инструментов компилятора Microsoft C++ поддерживают создание трех различных типов управляемых сборок: смешанных, чистых и проверяемых. Последние два рассматриваются в чистом и проверяемом коде (C++/CLI).

В этом разделе

Практическое руководство. Миграция в /clr
Описывает рекомендуемые шаги по внедрению или обновлению функциональных возможностей .NET в приложении.

Практическое руководство. Компиляция кода MFC и ATL с помощью /clr
Описывает компиляцию существующих программ MFC и ATL для целевой среды CLR.

Инициализация смешанных сборок
Описывает проблему и решение проблемы с загрузчиком.

Поддержка библиотек для смешанных сборок
Описывает использование собственных библиотек в компиляциях /clr .

Вопросы производительности
Описывает последствия производительности смешанных сборок и маршалинг данных.

Домены приложений и Visual C++
Обсуждается поддержка Visual C++ для доменов приложений.

Двойное перемыкание
Описывает последствия производительности собственной точки входа для управляемой функции.

Избегайте исключений при завершении работы среды CLR при использовании COM-объектов, созданных с помощью /clr
Описывается, как обеспечить надлежащее завершение работы управляемого приложения, использующее com-объект, скомпилированный с /clr.

Практическое руководство. Создание приложения с частичным доверием путем удаления зависимости от библиотеки DLL CRT
Описывается, как создать частично доверенное приложение cl language Runtime с помощью Visual C++ путем удаления зависимостей от msvcm90.dll.

Дополнительные сведения о рекомендациях по написанию кода для смешанных сборок см. в разделе "Обзор взаимодействия управляемого и неуправляемого кода".

См. также