Какова цель DLL вместо статических библиотек - PullRequest
0 голосов
/ 12 февраля 2012

Я использую библиотеку, которая решает различные задачи, связанные с разработкой игр.Он поставляется с файлами скомпилированной библиотеки как для статических, так и для динамических связей.Простите мою близорукость, но я спрашиваю, зачем кому-то использовать библиотеки DLL над статическими библиотеками, когда они доступны?При использовании библиотек DLL кажется, что это может привести к появлению множества программ, таких как библиотеки DLL, находящиеся не на своем месте, потерянные, и это делает распространение программного обеспечения менее удобным.Теоретически это может увеличить время загрузки программы.Единственное практическое преимущество, которое я вижу в использовании библиотек DLL, заключается в том, что, возможно, несколько программ могут использовать библиотеки, тем самым уменьшая размер программ.

Ответы [ 2 ]

2 голосов
/ 12 февраля 2012

Вы правы в том, что да, библиотеки DLL могут совместно использоваться несколькими программами.Возьмем, например, kernel32.dll, которая загружается в каждое приложение Windows в пользовательском режиме.Windows может совместно использовать страницы памяти kernel32.dll между всеми запущенными приложениями, но если бы вместо этого она была статически связана, у каждого приложения была бы дублирующаяся копия тех же кодовых страниц.

Microsoft имеет краткий обзорПреимущества использования DLL здесь: http://msdn.microsoft.com/en-us/library/windows/desktop/ms681938(v=vs.85).aspx

1 голос
/ 12 февраля 2012

ЭТО->

... тем самым уменьшая размер программ.

Это также позволяет сторонним организациям обновлять / исправлять функции без необходимости перекомпиляции или выпуска зависимого программного обеспечения. Что еще важнее ...

...