Библиотеки динамической компоновки
В комплект поставки системы программирования BorlandC++ 5.01 входит утилита IMPDEF, позволяющая сгенерировать по готовому загрузочному модулю DLL-библиотеки соответствующий ему файл определения модуля. При этом все функции, входящие в библиотеку, объявляются экспортируемыми. Естественно, этот файл можно отредактировать, оставив экспортируемыми только некоторые функции, а затем перекомпилировать проект с новым файлом определения модуля. Ниже приведен формат строки запуска этой утилиты.
IMPDEF DestName.DEF SourceName.DLL
Для того, чтобы приложение могло вызывать функции DLL-библиотеки, их необходимо описать как импортируемые. Обычно это достигается путем включения в состав компилируемого проекта приложения библиотеки импорта (файл *.lib). Предварительно необходимо на основе DLL-библиотеки создать библиотеку импорта. Для этого предназначена входящая в комплект поставки системы программирования Borland C++ 5.01 утилита IMPLIB. Ниже приведен формат строки запуска этой утилиты.
IMPLIB [options] LibName.LIB SourceName.DEF | SourceName.DLL
Таким образом, эта утилита создает библиотеку импорта по файлу определения модуля DLL-библиотеки или непосредственно по загрузочному модулю библиотеки.
API WIN32 поддерживает также динамический импорт функций из DLL-библиотек непосредственно в процессе выполнения приложения. Это может потребоваться в том случае, когда в зависимости от логики работы приложения следует импортировать те или иные функции библиотеки. Загрузить любую DLL-библиотеку в память можно при помощи функции LoadLibrary. Функция GetProcAddress позволяет получить указатель на любую экспортируемую функцию библиотеки. Функция FreeLibrary выгружает библиотеку из памяти. Подробную информацию об этих функциях можно получить в справочной документации или в электронном справочнике WIN32 Programmer’s Reference.
предыдущаяследующая