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