11. Исполняемые файлы. Динамические библиотеки (DLL) - структура, использование. Смешанные сборки (mixed DLL).

Исполнимый (исполняемый) модуль, исполняемый файл (англ. executable file) — файл, содержащий программу в виде, в котором она может быть исполнена компьютером. Перед исполнением программа загружается в память, и выполняются некоторые подготовительные операции (настройка окружения, загрузка библиотек).

Обычно, в исполняемом файле данные (информация) хранятся в каком-либо формате (например, ELF; см. список) и состоят из нескольких частей:

https://ru.wikipedia.org/wiki/%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D0%BC%D1%8B%D0%B9_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C

DLL (англ. Dynamic Link Library — «библиотека динамической компоновки», «динамически подключаемая библиотека») в операционных системах Microsoft Windows и IBM OS/2 — динамическая библиотека, позволяющая многократное использование различными программными приложениями. K DLL относятся также элементы управления ActiveX и драйверы. В системах UNIX аналогичные функции выполняют так называемые общие объекты (англ. shared objects).

Формат файлов DLL придерживается тех же соглашений, что и формат исполняемых файлов, сочетая код, таблицы и ресурсы, отличаясь лишь интерпретацией некоторых полей.

https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8_%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B0%D0%B5%D0%BC%D0%B0%D1%8F_%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0

Смешанные сборки могут содержать как инструкции неуправляемого машинного кода, так и инструкции языка MSIL.Это позволяет им вызывать и быть вызванными компонентами .NET и при этом оставаться совместимыми с полностью неуправляемыми компонентами.С помощью смешанных сборок разработчики могут создавать приложения, используя сочетание функциональных возможностей управляемого и неуправляемого кода.Благодаря этому смешанные сборки являются идеальными для переноса существующих приложений Visual C++ на платформу .NET.