Поддержка библиотек для смешанных сборок

Visual C++ поддерживает использование стандартной библиотеки C++, библиотеки среды выполнения C (CRT), ATL и MFC для приложений, скомпилированных с помощью /clr (компиляция среды CLR). Это позволяет существующим приложениям, используюющим эти библиотеки, также использовать платформа .NET Framework функции.

Важно!

Параметры компилятора /clr:pure и /clr:safe компилятора устарели в Visual Studio 2015 и не поддерживаются в Visual Studio 2017.

Эта поддержка включает следующие библиотеки DLL и импорта:

  • Msvcmrt[d].lib, если компилируется с / clr. Смешанные сборки ссылаются на эту библиотеку импорта.

Эта поддержка обеспечивает несколько связанных преимуществ:

  • Стандартная библиотека CRT и C++ доступны для смешанного кода. Предоставленная стандартная библиотека CRT и C++ не являются проверяемыми; В конечном счете вызовы по-прежнему направляются в ту же библиотеку CRT и C++ standard, что и вы используете из машинного кода.

  • Исправлена единая обработка исключений в смешанных образах.

  • Статическая инициализация переменных C++ в смешанных изображениях.

  • Поддержка переменных для каждого приложения и переменных для каждого процесса в управляемом коде.

  • Устраняет проблемы блокировки загрузчика, применяемые к смешанным БИБЛИОТЕКАм DLL, скомпилированных в Visual Studio 2003 и более ранних версиях.

Кроме того, эта поддержка представляет следующие ограничения:

  • Для кода, скомпилированного с помощью /clr, поддерживается только модель DLL CRT. Статические библиотеки CRT не поддерживают сборки /clr .

См. также