Страница 1 из 1

Можно ли создать библиотеку импорта для сторонней DLL?

Добавлено: 14 сен 2015, 06:17
Сионист
Например, для gdi32.dll? Есть только среда разработки Code Blocks
Build: Dec 27 2013, 12:58:32 - wx2.8.12 (windows, unicode) - 32 bit
с компилятором, а готовых библиотек импорта для АПИшных библиотек почему то нет.

Re: Можно ли создать библиотеку импорта для сторонней DLL?

Добавлено: 14 сен 2015, 08:49
Romeo
Lib файлы поставляются не со средой разработки, а с компилятором. С Code Blocks обычно используется в связке компилятор MinGW, у которого необходимые файлики расположены в подпапке lib. Так что для стандартных библиотек Windows (а gdi32.dll как раз относится к стандартным) никакие манипуляции не требуются.

Если же нужно создать либку не для стандратной dll, то гугл, как всегда, легко помогает. Заострю внимание на том, что импортить либку нужно обязательно утилитами, прилагаемыми к компилятору, так как у разных компиляторов разный ABI.

Re: Можно ли создать библиотеку импорта для сторонней DLL?

Добавлено: 14 сен 2015, 12:36
Сионист
Я знаю, где они обычно лежат. Но в этом экземпляре их там мало, а для gdi32 нет.

Re: Можно ли создать библиотеку импорта для сторонней DLL?

Добавлено: 14 сен 2015, 12:55
Romeo
Кривая версия MinGW, значит. Переустанови. Я вообще использую утилитку mingw-get для этих целей. Она вытаскивает сама с сайта нужные пакейджи и устанавливает. А так же её можно периодически запускать, она будет проверять апдейты.

Re: Можно ли создать библиотеку импорта для сторонней DLL?

Добавлено: 16 сен 2015, 07:39
Сионист
А где взять не кривую? На 64 бита для винды.

Re: Можно ли создать библиотеку импорта для сторонней DLL?

Добавлено: 18 сен 2015, 06:20
Decoder
Нужно установить Platform SDK для Windows. Он скачивается с сайта Microsoft и устанавливается отдельно или поставляется вместе с Visual Studio. В нём самый полный набор библиотечных файлов для Windows.

Re: Можно ли создать библиотеку импорта для сторонней DLL?

Добавлено: 18 сен 2015, 10:00
Romeo
Это неверный ответ. Platform SDK содержит либы, созданные компилятором MS Visual Studio. Такие либы не подходят для MinGW, так как у этих компиляторов разный ABI.

Как решить проблему я уже написал. Нужно поставить нормальную версия MinGW. Лучше всего воспользоваться утилитой mingw-get.

Re: Можно ли создать библиотеку импорта для сторонней DLL?

Добавлено: 19 сен 2015, 17:16
Decoder
Есть специальная утилита coff2oem, которая конвертирует LIB-файлы из одного бинарного формата в другой. Она входит в пакет компилятора Borland C++. С её помощью можно преобразовывать LIB-файлы из Platform SDK Microsoft в ОЕМ-формат, который используют другие компиляторы и компоновщики. Там же имеется утилита implib, которая создаёт LIB-файлы (библиотеки импорта) из DLL в формате ОЕМ.