
Что такое DLL и зачем они нужны
Xakep, номер #035, стр. 035-074-3
При использовании динамических библиотек в запускном файле находится только самое основное, а дополнительные возможности подгружаются по мере надобности из DLL-файлов. Таким образом, суммарная скорость загрузки уменьшается, причем очень даже значительно.
ИТОГ
У динамических библиотек сплошные преимущества и ни одного существенного недостатка. Поэтому они получили такое широкое распространение и программеры используют их на каждом углу, когда надо и когда не надо. Никогда нельзя быть уверенным, что какой-то код уже больше никогда не понадобится. Всегда нужно рассчитывать на будущее.
Я надеюсь, что я тебя убедил в великих возможностях DLL. Это действительно так. Конечно же, ActiveX более продвинуты, но они требуют геморрной регистрации в системе и намного сложнее в кодинге. Но если ты разберешься с этим, то сможешь поднять свой уровень кодинга на новую высоту.
Из чего же сделан Windows?
Все, наверно, помнят такую песенку: "Из чего же, из чего же, из чего же сделаны эти мальчишки?". Глупейшая песня, и я со слезами на глазах вспоминаю, как я в лагере (я имею ввиду пионерский, а не концлагерь :) распевал ее вместе с остальными пионерами. Ох, и веселые были времена. Жаль, сейчас так не развлечешься :(. О чем это я? Ах да... Я хотел рассказать тебе, из чего состоит Windows.
Большинство думает, что Windows - это все, что находится в папке c:\Windows, а ее ядро - это win.com. В какой-то степени это так, но не совсем. Ядро окошек - это простой DLL файл, а если быть конкретнее, то это Kernel32.dll. При старте Windows эта библиотека загружается в память в единственном экземпляре, и любая прога может обращаться к содержащемуся в ней коду и использовать его в своих целях.
Точно так же за вывод графики в Windows отвечает GDI32.DLL, которая также загружается при старте в единственном экземпляре.
В Windows очень много дыр, но динамические библиотеки это достаточно гениальное решение многократно используемого кода.
Графические движки
Любой геймер обязан знать про существование OpenGL. Что это такое? Какой-то пакет программ? Какой-то SDK для создания графики? Ничего подобного, это всего лишь две динамические библиотеки opengl.dll (opengl32.dll) и glu.dll (glu32.dll).
Что такое DirectX? Это графическая библиотека, которая состоит из DirectDraw, DirectInput, DirectMusic, DirectPlay и так далее. Все это не что иное, как простые динамически подгружаемые библиотеки. DirectDraw это Ddraw.dll, DirectInput это Dinput.dll, DirectMusic это Dmusic.dll и так далее.
Любые игровые движки выполнены в виде динамически загружаемых библиотек.