Программа представляет собой серию инструкций. Обычно компьютер будет читать и выполнять инструкции один за другим последовательно.
Это замечательно, но большинство программ выполняют одну и ту же задачу в разное время или одну и ту же задачу с небольшими изменениями в разное время. Вместо того, чтобы переписывать инструкции этой задачи снова и снова, опция, доступная программистам, заключается в том, чтобы упаковать эти инструкции в подпрограмму или функцию .
Затем, вместо того, чтобы копировать инструкции снова и снова, вы говорите программе вызывать эту функцию и, следовательно, экономить место. Связывание связывает эту функцию со всеми местами, которые вызывают ее в программе, когда она собирается. Программу также легче обслуживать, поскольку, если вы хотите изменить эту задачу, вы можете изменить ее в одном месте, а не по всей программе.
Большинство программ имеют функции, которые используются в этой программе. Они являются частью этой программы, загружены вместе с ней и доступны только этой программе.
Но что, если у вас есть отличная функция (например, та, которая принимает дату и возвращает день недели) и хотите использовать ее во многих различных программах? Динамические библиотеки ссылок, или .dll-файлы в Windows, позволяют это. Это называется динамическим связыванием, потому что связывание происходит во время выполнения, когда программа загружается, а не во время сборки, когда она компилируется (в этом случае это называется статическим связыванием ).
Вы можете упаковать функцию в определенный файл .dll, а затем сообщить вашей основной программе, которую хотите использовать, или импортировать функции из этого файла .dll.
Теперь, если вы хотите обновить то, что делает эта функция, или исправить ошибки, вы попадаете в еще лучшую ситуацию, так как все, что вам нужно сделать, это изменить функции в одном файле, и каждая программа, которая его использует, будет автоматически обновлена. Недостатком является то, что теперь ваша программа зависит от другого файла для правильной работы. Обычно преимущества перевешивают недостатки для всех, кроме программ аварийного восстановления системы, которые должны работать, когда вы ничего не можете загрузить с диска и тому подобное.