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

Для нахождения экспортируемых функций и маршалинга их аргументов во время выполнения вызов неуправляемого кода использует метаданные. Этот процесс показан на следующем рисунке.

Вызов неуправляемой функции DLL из вызова неуправляемого кода

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

При вызове неуправляемой функции вызов неуправляемого кода выполняет следующую последовательность действий:

  1. Определяет DLL, содержащей функцию.

  2. Загружает DLL в память.

  3. Находит адрес функции в памяти и помещает ее аргументы в стек, осуществив в случае необходимости маршалинг данных.

    ПримечаниеПримечание

    Обнаружение и загрузка DLL, а также определение адреса функции в памяти выполняется только при первом вызове функции.

  4. Передает управление неуправляемой функции.

Вызов неуправляемого кода вызывает исключения, создаваемые неуправляемой функцией, для управляемого вызывающего объекта.

См. также

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

Использование неуправляемых функций DLL

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