Поддержка вызова неуправляемого кода
Обновлен: Ноябрь 2007
Вызовом неуправляемого кода является служба, позволяющая управляемому коду вызывать неуправляемые функции, реализованные в библиотеках DLL. Можно использовать вызов неуправляемого кода семантически как в полной версии .NET Framework, однако платформа .NET Compact Framework имеет некоторые ограничения в маршалинге объектов и типов между неуправляемым и управляемым кодом.
Вызов неуправляемого кода в платформе .NET Compact Framework состоит из трех частей:
Во время конструирования разработчик предоставляет описание неуправляемой функции для вызова. Оно включает имя модуля (файл DLL), имя точки входа и соглашение при вызове.
На этапе компиляции (JIT) общеязыковая среда выполнения извлекает эти сведения из метаданных, размещает файл DLL, содержащий функцию, загружает файл DLL в память и получает адрес функции. Если модуль или функция не найдены, общеязыковая среда выполнения вызывает MissingMethodException.
Во время выполнения общеязыковая среда выполнения маршалирует параметры из управляемого формата в неуправляемый формат перед вызовом неуправляемой функции. Общеязыковая среда выполнения определяет порядок маршалирования каждого параметра на основе управляемого объявления метода.
В этом подразделе
Поддерживаемые поля DllImportAttribute
Перечисляет подмножества поддерживаемых полей для класса DllImportAttribute.Примеры платформенного вызова обертки
Содержит пример кода, обеспечивающего структуру для выполнения вызовов неуправляемого кода.
Связанные подразделы
Поддержка маршалинга взаимодействия
Описание различий маршалинга типов данных между управляемым и неуправляемым кодом в платформе .NET Compact Framework.Пошаговое руководство. Получение платформы устройства, Пошаговое руководство. Получение имени и идентификатора устройства, Пошаговое руководство. Возвращение и установка системного времени, Практическое руководство. Возвращение значения памяти устройства, Практическое руководство. Перезагрузка устройства, Практическое руководство. Воспроизведение звука, Пошаговое руководство. Отображение градиентной заливки, ,
Практические руководства, демонстрирующие использование вызова неуправляемого кода