Четвертый BORLAND С++ и его окружение

       

Функции в DLL


Утилита IMPDEF создает редактируемый исходный файл, который

перечисляет все экспортные функции в DLL. Вы можете отредактировать этот файл .DEF так, чтобы он содержал только те функции, которые вы хотите сделать доступными для нужной прикладной программы, а затем выполнить IMPLIB для отредактированного файла .DEF. В

результате получается библиотека импорта, которая содержит информацию импорта для заданного подмножества экспортируемых функций

DLL.

Например, пусть вы определяете DLL, которая предоставляет

функции для использования различными прикладными программами.

Каждая экспортируемая функция в DLL определяется с помощью оператора _exрort. Теперь, если все прикладные программы используют

все экспортируемые функции DLL, вы можете просто использовать

IMPLIB для создания одной библиотеки импорта для DLL и поставлять

эту библиотеку импорта с DLL. Библиотека импорта может быть скомпонована с любыми прикладными программами, исключая таким образом

необходимость перечисления для каждой прикладной программы каждой

используемой ей функции DLL в секции IMPORT файла определения модуля.

Теперь, пусть нужно передать некоторую часть экспортируемых



функций DLL отдельной прикладной программе. В идеале требуется

скомпоновать специальную библиотеку импорта с этой прикладной

программой - библиотеку импорта, которая предоставляет только

подмножество функций, которые будут использоваться прикладной

программой. Все другие экспортируемые функции в DLL для клиентной

прикладной программы должны быть скрыты.

Для создания библиотеки импорта, которая удовлетворяет этим

условиям, выполните IMPDEF для откомпилированной и скомпонованной

DLL. Утилита IMPDEF создаст файл определения модуля, который содержит в секции EXPORT перечисление всех экспортируемых функций

DLL. Вы можете редактировать этот файл определения модуля, удаляя

компоненты секции EXPORTS для тех функций, которые вы не хотите

включать в библиотеку импорта. После того, как вы удалите ненужные экспортируемые функции, выполните утилиту IMPLIB для файла

определения модуля. Результатом будет библиотека импорта, которая

содержит информацию импорта только для экспортных функций, перечисленных в секции EXPORTS файла определения модуля.



  • Содержание раздела