Access 2002

Библиотеки динамической компоновки


При достаточно широком распространении новых операционных систем, таких как Windows 2000 и Windows ХР, в комплекте поставки которых предусмотрены СОМ-объекты, и в случае принятия этой модели на вооружение многими другими компаниями, вы сможете применять их без лишних затрат. Однако на текущий момент, если вы хотите иметь гарантию, что ваше приложение после инсталляции на компьютер пользователя будет надежно работать, используйте API.

В традиционных компилируемых языках программирования приложение должно было содержать все вызываемые им функции, из-за чего многие программы включали в точности один и тот же код. Например, когда вы создавали приложение DOS на стандартном языке С, для выполнения таких действий, как чтение строки из файла, чтение символа из буфера клавиатуры или получение текущего времени оно обычно вызывало функции из стандартной библиотеки. Все эти библиотечные функции компоновались с программой статически, то есть их код включался компоновщиком прямо в исполняемый файл. В результате, если у вас было 200 программ, выводящих что-то на экран с помощью функции printf, все 200 содержали полный код этой функции, а значит, он 200 раз записывался на жесткий диск вашего компьютера.

В Windows используется иной подход к построению приложений: библиотеки стандартных функций обычно компонуются с программой динамически. Это значит, что если у вас есть 200 приложений Windows, которые выводят строку в окно, на жестком диске располагается только одна копия функции ExtTextOut. Каждое из приложений содержит лишь вызовы этой функции и небольшой фрагмент кода, необходимого для ее поиска и подключения. Все такие стандартные функции, совместно используемые многими приложениями, располагаются в библиотеках динамической компоновки (Dynamic Link Libraries, DLL). Эти библиотеки, как правило, имеют расширение DLL и, если они используются более чем одной программой, то обычно хранятся в каталоге WINDOWSSYSTEM.

Комментарии закрыты