|
теория:
при подключении dll не нужно знать адреса функций. Если Вы вызываете функции с использованием GetProcAddress, то Вы знаете имена функций (ну или номер и соответствие функции номеру), которые содержатся в dll. В dll есть список этих имен, по ним GetProcAddress шустрит и находит адрес. Поэтому имена можно оттуда взять и сгенерировать по ним import library. Можно и не брать, если есть .def файл или его написать.
практика:
для борландов:
implib mylib.lib mylib.dll и все. получается mylib.lib.
для визуал с:
имплиб не поставляется. форматы объектников отличаются от борландовских. Майкрософт рекомендует использовать dumpbin /EXPORTS для получения списка функций, потом руками сделать .def файл, потом скормить в lib.exe /DEF:mylib.def и получить mylib.lib
Альтернативы:
1) использовать implib32, бесплатная утилита, которая это автоматизирует. Фривара. Бывает глючит всмысле совсем не работает.
2) использовать implib из борланда и потом библиотеку сконвертировать в майкрософтовский кофф (утилиту не помню, помню, что есть подводные камни).
3) использовать борландовский impdef mylib.dll, на выходе получить mylib.def, скормить в в майкрософтовский lib.exe /DEF:mylib.def и получить mylib.lib
E-mail: info@telesys.ru