При этом способе ОС ответственна за выполнение функций API. Объектный код, выполняющий функции, либо непосредственно входит в состав операционной системы, либо находится в составе динамически загружаемых библиотек (Dynamic Link Libraries, DLL), поставляемых вместе с системой. Система программирования ответственна только за то, чтобы организовать интерфейс для вызова этого кода.
Динамически загружаемые модули (программные модули с расширением .dll) исполняются при вызове их исполняющейся программой (не подключаются к коду программы!).
Прикладной программист может оформить свою программу в виде .dll-файла (очень похоже на организацию пользовательского модуля) и подключить ее к общей DLL библиотеке.
Достоинства: достигается наибольшая эффективность выполнения функций API, т. к. прикладная программа обращается непосредственно к операционной системе.
Недостатки: практически отсутствие переносимости кода программы (программа, созданная для одной архитектуры вычислительной системы, не может исполняться на вычислительной системе другой архитектуры).
Примеры таких API:
Набор функций WinAPI операционной системы Windows,
Набор сервисных функций (работа с клавиатурой, дисплеем и др.) операционной системы MS DOS, реализованных в виде подпрограмм обслуживания системных прерываний BIOS и DOS (команда int).
Эти функции предоставляются пользователю в виде библиотеки функций соответствующего языка программирования. Обычно речь идет о библиотеке времени исполнения (RTL). Система программирования предоставляет пользователю библиотеку функций и обеспечивает подключение к результирующей программе объектного кода, ответственного за выполнение этих функций.
Недостатки: эффективность ниже, чем при реализации на уровне ОС, т. к. для выполнения многих функций библиотека RTL языка программирования все равно должна выполнять обращения к функциям операционной системы.
Достоинства: высокая переносимость исходного кода программы, т. к. синтаксис и семантика обращения к функциям строго регламентированы в стандарте языка программирования и не зависят от архитектуры вычислительной системы.
Примеры: функции динамического выделения памяти в языках C (malloc, realloc, free), С++ (new и delete) и Паскаль (функции new и dispose).
Функции API предоставляются пользователю в виде библиотеки процедур и функций, созданной сторонним разработчиком.
Система программирования ответственна только за то, чтобы подключить объектный код библиотеки к результирующей программе или за организацию интерфейса для вызова этого кода, если внешняя библиотека является динамически загружаемой (DLL библиотекой).
Пример внешней подгружаемой библиотеки – программная графическая система OpenGL для Windows и Linux), библиотеки MFC и VCL для Windows.