Пошаговое руководство. Использование возможностей режима /clr:pure

Обновлен: Ноябрь 2007

В этом пошаговом руководстве демонстрируется использование отражения для приложения в чистом коде MSIL. Решение Scribble для Windows Forms дополнено несколькими собственными классами, содержащими статические данные, а также предоставляющими элементы управления Windows Forms, которые должны быть доступны из конструктора Windows Forms. Построение образца с использованием параметра /clr:pure позволяет изучить некоторые потенциальные проблемы, связанные с таким сценарием. Дополнительные сведения см. в разделе Практическое руководство. Миграция в /clr:pure.

Обязательные компоненты

Образец ScribbleDotNET: расширение образца Scribble функциями CLR

Построение и запуск приложения этого образца

  1. Загрузите образец ScribbleDotNET.

  2. Откройте файл решения Scribble.sln в среде разработки Visual Studio.

  3. Постройте решение, используя конфигурацию "CLR-Pure Debug" или "CLR-Pure Release".

  4. Откройте компонент StringDialog.h в режиме конструктора.

  5. Откроется окно конструктора, содержащее экземпляр элемента управления ScribbleCustomControl.

Технологии

  • Новый синтаксис C++ для .NET

  • Отражение

  • marshal_as<T> для доступа к собственным типам из управляемых классов.

Этот образец создает неуправляемый класс и упаковывает его в класс управляемого элемента управления. Когда приложение компилируется в чистый код MSIL, конструктор Windows Forms в Visual Studio может выполнить отражение результирующего EXE-файла и загрузить управляемый элемент управления для использования в конструкторе Windows Forms. Такое возможно только при условии, что текущая конфигурация предусматривает создание приложения в чистом коде MSIL, а не в неуправляемом или смешанном режиме.

В элементе управления создается экземпляр собственного класса. В качестве информации требуется строка собственного типа. С помощью функции marshal_as<T> данные приводятся к управляемому типу, который можно использовать в приложении, поддерживающем CLR. Дополнительные сведения о библиотеке маршалинга см. в разделе Overview of Marshaling in C++.

См. также

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

Language Features for Targeting the CLR

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

Пошаговые руководства в Visual C++ 2008