Поделиться через


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

В этом разделе рассматриваются способы создания приложения CLR с частичным доверием, написанного на Visual C++, путем удаления зависимости от библиотеки Msvcm90.dll.

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

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

Примечание

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

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

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

  2. Следует добавить в список зависимостей компоновщика одну из библиотек Ptrustm. При построении приложения в режиме выпуска следует использовать библиотеку Ptrustm.lib. В режиме отладки следует использовать библиотеку Ptrustmd.lib. Сведения о способах удаления этой зависимости программными средствами или с помощью среды разработки Visual Studio см. в разделе LIB-файлы в качестве входных файлов компоновщика.

См. также

Ссылки

/link (Передача параметров компоновщику)

Основные понятия

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

Инициализация смешанных сборок

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

Другие ресурсы

Безопасность в машинном коде и коде .NET Framework