Библиотеки импорта используются для линковки исполняемого файла с библиотекой динамической компоновки (DLL) или другим исполняемым файлом, содержащим таблицу экспорта.
Обычно библиотека импорта предоставляется разработчиком DLL, чтобы другие разработчики могли использовать данную DLL посредством динамической линковки.
К примеру, Microsoft® предоставляет библиотеки импорта для системных DLL Windows (например, kernel32.dll
, user32.dll
).
Обычно библиотеки импорта имеют то же расширение файла и тот же формат, что и статические библиотеки. Например, kernel32.lib
может быть библиотекой импорта для kernel32.dll
.
MS COFF — стандартный формат файла для библиотек импорта, поддерживаемый большинством линкеров в среде Windows.
ImpLib SDK также полезен для преодоления юридических ограничений при распространении библиотек импорта для определенных DLL, таких как среда выполнения Microsoft® C++. Библиотеки импорта для CRT или STL входят в состав Windows SDK. Несмотря на то, что SDK доступен бесплатно, распространение этих библиотек импорта не разрешается в соответствии с действующими лицензионными соглашениями. Альтернативой является создание библиотек импорта с помощью ImpLib SDK. поскольку это не накладывает никаких ограничений на распространение файлов.
Одним из инструментов ImpLib SDK является DLL2DEF. Это утилита для извлечения в текстовом виде экспортируемых символов из динамических библиотек DLL.
Более детальное описание и туториалы приводятся в разделе «Руководство по ImpLib SDK».
ImpLib SDK также позволяет создавать библиотеки импорта для Visual Basic 6, даже если DLL использует отличное от stdcall соглашение о вызове, как например cdecl. Один из примеров, входящий в состав ImpLib SDK, показывает как использовать API OpenAL в Visual Basic 6. Динамическая библиотека OpenAL использует соглашение о вызове cdecl.
Репозиторий с открытым исходным кодом и официальные релизы ImpLIb SDK доступны бесплатно на платформах Sourceforge и GitHub.
PureBasic OpenAL SDK тоже доступен на этом сайте. Этот проект разработан с помощью ImpLib SDK.
ImpLib SDK бесплатен даже для коммерческого использования и распространения каким угодно способом, при условии сохранения копирайтов, упомянутых в лицензионном соглашении. Весь пакет предоставляется «как есть», без каких либо гарантий со стороны разработчика.
2025-03-09 | v2.0.1 поддерживает линкер LLVM (lld-link). |
2025-01-20 | v2.0.0 поддерживает 64-битные библиотеки (x64). |
2024-12-13 | v1.9.1 генерирует более компактные библиотеки. Добавлены дополнительные примеры. Документация обновлена и дополнена. |
2021-06-25 | v1.9 поддерживает длинные имена DLL. Добавлен испанский перевод. |
... | |
2006 | Первый общедоступный выпуск |