Динамически подключаемая библиотека (DLL)

DLL — это концепция общей библиотеки, реализованная корпорацией Microsoft в операционных системах Windows и OS/2.

Components: 1. Code sections. 2. Data sections. 3. Resources. 4. Relocation table. Types: Extension DLLs, Regular DLLs.

        graph LR
  Center["Динамически подключаемая библиотека (DLL)"]:::main
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 Простыми словами

Представь, что ты строишь город. Вместо того чтобы в каждом доме строить свою электростанцию, ты строишь одну большую и проводишь провода ко всем домам. Дома — это программы, а электростанция — это DLL. Если на станции заменят оборудование на более мощное, свет станет ярче во всем городе сразу.

🤓 Expert Deep Dive

Существует два способа работы с DLL: 'Статическая загрузка' (когда ОС загружает DLL сразу при запуске EXE) и 'Динамическая загрузка' (когда программа решает загрузить библиотеку только в тот момент, когда она ей понадобилась). Второй способ экономит оперативную память. Важнейшие DLL Windows (такие как ntdll.dll или kernel32.dll) защищены механизмом 'Windows Resource Protection', который предотвращает их удаление или изменение даже администратором, чтобы система оставалась стабильной.

📚 Источники