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


Поддержка вызова неуправляемого кода

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

Вызовом неуправляемого кода является служба, позволяющая управляемому коду вызывать неуправляемые функции, реализованные в библиотеках DLL. Можно использовать вызов неуправляемого кода семантически как в полной версии .NET Framework, однако платформа .NET Compact Framework имеет некоторые ограничения в маршалинге объектов и типов между неуправляемым и управляемым кодом.

Вызов неуправляемого кода в платформе .NET Compact Framework состоит из трех частей:

  1. Во время конструирования разработчик предоставляет описание неуправляемой функции для вызова. Оно включает имя модуля (файл DLL), имя точки входа и соглашение при вызове.

  2. На этапе компиляции (JIT) общеязыковая среда выполнения извлекает эти сведения из метаданных, размещает файл DLL, содержащий функцию, загружает файл DLL в память и получает адрес функции. Если модуль или функция не найдены, общеязыковая среда выполнения вызывает MissingMethodException.

  3. Во время выполнения общеязыковая среда выполнения маршалирует параметры из управляемого формата в неуправляемый формат перед вызовом неуправляемой функции. Общеязыковая среда выполнения определяет порядок маршалирования каждого параметра на основе управляемого объявления метода.

В этом подразделе

Связанные подразделы