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

В этом разделе описывается создание частично доверенного приложения cl language Runtime с помощью Visual C++ путем удаления зависимостей от msvcm90.dll.

Приложение Visual C++, созданное с помощью /clr , будет иметь зависимость от msvcm90.dll, которая входит в библиотеку среды выполнения C. Если вы хотите, чтобы приложение использовалось в среде частичного доверия, среда CLR будет применять определенные правила безопасности доступа к коду в библиотеке DLL. Поэтому необходимо удалить эту зависимость, так как msvcm90.dll содержит машинный код и политику безопасности доступа к коду не может быть применена к ней.

Если приложение не использует какие-либо функции библиотеки среды выполнения C и вы хотите удалить зависимость от этой библиотеки из кода, необходимо использовать параметр компоновщика /NODEFAULTLIB:msvcmrt.lib и связаться с ptrustm.lib или ptrustmd.lib . Эти библиотеки содержат файлы объектов для инициализации и неинициализации приложения, классов исключений, используемых кодом инициализации и управляемого кода обработки исключений. Связывание в одной из этих библиотек приведет к удалению любой зависимости от msvcm90.dll.

Примечание.

Порядок неинициализации сборки может отличаться для приложений, использующих библиотеки ptrust. Для обычных приложений сборки обычно выгружаются в обратном порядке, который они загружаются, но это не гарантируется. Для приложений с частичным доверием сборки обычно выгружаются в том же порядке, что и они загружаются. Это также не гарантируется.

Создание частично доверенного смешанного приложения (/clr)

  1. Чтобы удалить зависимость от msvcm90.dll, необходимо указать компоновщику не включить эту библиотеку с помощью параметра компоновщика /NODEFAULTLIB:msvcmrt.lib linker. Сведения о том, как это сделать с помощью среды разработки Visual Studio или программно, см. в разделе /NODEFAULTLIB (Игнорировать библиотеки).<a1/>

  2. Добавьте одну из библиотек ptrustm в входные зависимости компоновщика. Используйте ptrustm.lib, если вы создаете приложение в режиме выпуска. Для режима отладки используйте ptrustmd.lib. Сведения о том, как это сделать с помощью среды разработки Visual Studio или программно, см. в разделе . Файлы Lib в качестве входных данных компоновщика.

См. также

Смешанные (собственные и управляемые) сборки
Инициализация смешанных сборок
Поддержка библиотек для смешанных сборок
/link (передача параметров компоновщику)