Практическое руководство. Создание приложения с частичным доверием путем удаления зависимости от библиотеки DLL CRT
Обновлен: Ноябрь 2007
В этом разделе рассматриваются способы создания приложения 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) с частичным доверием
Чтобы удалить зависимость от библиотеки Msvcm90.dll, необходимо указать, чтобы компоновщик не включал эту библиотеку с помощью параметра компоновщика /NODEFAULTLIB:msvcmrt.lib. Сведения о способах удаления этой зависимости программными средствами или с помощью среды разработки Visual Studio см. в разделе Параметр /NODEFAULTLIB (пропуск библиотек).
Следует добавить в список зависимостей компоновщика одну из библиотек Ptrustm. При построении приложения в режиме выпуска следует использовать библиотеку Ptrustm.lib. В режиме отладки следует использовать библиотеку Ptrustmd.lib. Сведения о способах удаления этой зависимости программными средствами или с помощью среды разработки Visual Studio см. в разделе .LIB-файлы в качестве ввода компоновщика.
См. также
Основные понятия
Смешанные (собственные и управляемые) сборки
Инициализация смешанных сборок
Поддержка библиотек для смешанных сборок
Ссылки
/link (Передача параметров компоновщику)