2012-02-12 3 views
0

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

ответ

2

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

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

1

this->

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

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

+0

Не думать об этом. Большинство обновлений программного обеспечения сделано таким образом? – newprogrammer

Смежные вопросы