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

 

Самая актуальная документация по версии-кандидату Visual Studio 2017: Документация по версии-кандидату Visual Studio 2017.

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

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

В Visual C++ поддерживается создание трех различных типов управляемых сборок: смешанных, чистых и проверяемых. Последние два типа рассматриваются в разделе Чистый и проверяемый код.

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

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

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

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

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

Домены приложений и Visual C++
Поддержка доменов приложения в Visual C++.

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

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

Практическое руководство. Создание приложения с частичным доверием путем удаления зависимости от библиотеки DLL CRT
Создание приложения среды CLR с частичным доверием на языке Visual C++ путем удаления зависимости от библиотеки Msvcm90.dll.

Дополнительные сведения о правила кодирования для смешанных сборок см. в статье MSDN «обзор взаимодействие управляемого и неуправляемого кода» в http://msdn.microsoft.com/netframework/default.aspx?pull=/library/dndotnet/html/manunmancode.asp.

Взаимодействие исходного кода и платформы.NET

Показ: