Если хочется получить .lib по .dll (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено радиолюбитель без лицензии 04 марта 2005 г. 12:19
В ответ на: про implib радиолюбителю без лицензии вопрос отправлено yes 04 марта 2005 г. 10:01

теория:
при подключении 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