Электронный учебник:


Курс лекций:


Дополнительно:

Практикум:



Наши хостеры:

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

             В комплект поставки системы программирования 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.

предыдущаяследующая