Построение библиотеки импорта и файла экспорта
Чтобы создать библиотеку импорта и файл экспорта, используйте следующий синтаксис:
LIB /DEF[:deffile] [параметры] [objfiles] [библиотеки]
При указании /DEF lib создает выходные файлы из спецификаций экспорта, передаваемых в команде LIB. Существует три метода указания экспорта, перечисленных в рекомендуемом порядке использования:
Определение
__declspec(dllexport)
в одном из objfiles или библиотекСпецификация /EXPORT:name в командной строке LIB
Определение в инструкции EXPORTS в deffile
Это те же методы, которые используются для указания экспорта при связывании программы экспорта. Программа может использовать несколько методов. Вы можете указать части команды LIB (например, несколько objfiles или /EXPORT спецификаций) в файле команд в команде LIB так же, как и в команде LINK.
Следующие параметры применяются к созданию библиотеки импорта и экспорту файла:
/OUT: импорт
Переопределяет имя выходного файла по умолчанию для создаваемой библиотеки импорта . Если параметр /OUT не указан, имя по умолчанию — это базовое имя первого файла объекта или библиотеки в команде LIB и расширение .lib. Файл экспорта получает то же базовое имя, что и библиотека импорта и расширение .exp.
/EXPORT: entryname[= internalname][,@ordinal[, NONAME]][, DATA]
Экспортирует функцию из программы, чтобы разрешить другим программам вызывать функцию. Вы также можете экспортировать данные (с помощью ключевого слова DATA ). Экспорты обычно определяются в библиотеке DLL.
Имя записи — это имя функции или элемента данных, так как оно должно использоваться вызывающей программой. При необходимости можно указать внутреннее имя как функцию, известную в определяющей программе. По умолчанию внутреннее имя совпадает с именем записи. Порядковый номер указывает индекс в таблицу экспорта в диапазоне от 1 до 65 535; если вы не указываете порядковый номер, LIB назначает один. Ключевое слово NONAME экспортирует функцию только в виде порядкового номера без имени записи. Ключевое слово DATA используется для экспорта объектов только для данных.
/INCLUDE: символ
Добавляет указанный символ в таблицу символов. Этот параметр полезен для принудительного использования объекта библиотеки, который в противном случае не будет включен.
Обратите внимание, что при создании библиотеки импорта перед созданием .dll необходимо передать тот же набор файлов объектов при создании .dll, как и при создании библиотеки импорта.