Compilando uma biblioteca de importação e um arquivo de exportação

Para criar uma biblioteca de importação e um arquivo de exportação, use a seguinte sintaxe:

LIB /DEF[:deffile] [options] [objfiles] [libraries]

Quando /DEF é especificado, o LIB cria os arquivos de saída com base nas especificações de exportação que são passadas no comando do LIB. Há três métodos para especificar exportações, listados na ordem de uso recomendada:

  1. Uma definição __declspec(dllexport) em um dos objfiles ou uma das bibliotecas.

  2. Uma especificação de /EXPORT:name na linha de comando do LIB

  3. Uma definição em uma instrução EXPORTS em um deffile

Esses são os mesmos métodos que você usa para especificar exportações ao vincular um programa de exportação. Um programa pode usar mais de um método. Você pode especificar partes do comando LIB (como vários objfiles ou especificações /EXPORT) em um arquivo de comando no comando LIB, exatamente como você pode fazer em um comando LINK.

As seguintes opções se aplicam à criação de uma biblioteca de importação e um arquivo de exportação:

/OUT: importação

Substitui o nome do arquivo de saída padrão para a biblioteca de importação que está sendo criada. Quando /OUT não é especificado, o nome padrão é o nome de base do primeiro arquivo-objeto ou biblioteca no comando LIB e na extensão .lib. O arquivo de exportação recebe o mesmo nome de base que a biblioteca de importação e a extensão .exp.

/EXPORT: entryname[= internalname][,@ordinal[, NONAME]][, DATA]

Exporta uma função do programa para permitir que outros programas chamem a função. Você também pode exportar dados (usando a palavra-chave DATA). As exportações geralmente são definidas em uma DLL.

O entryname é o nome da função ou do item de dados, como deve ser usado pelo programa que faz a chamada. Opcionalmente, você pode especificar o internalname como a função conhecida no programa de definição; por padrão, internalname é o mesmo que entryname. O ordinal especifica um índice na tabela de exportação no intervalo de 1 a 65.535; se você não especificar ordinal, o LIB atribuirá um. A palavra-chave NONAME exporta a função apenas como um ordinal, sem um entryname. A palavra-chave DATA é usada para exportar objetos somente de dados.

/INCLUDE: símbolo

Adiciona o símbolo especificado à tabela de símbolos. Essa opção é útil para forçar o uso de um objeto de biblioteca que, de outra forma, não seria incluído.

Observe que, se você criar a biblioteca de importação em uma etapa preliminar, antes de criar seu .dll, deverá passar o mesmo conjunto de arquivos-objeto ao criar o .dll, conforme você passou ao criar a biblioteca de importação.

Confira também

Trabalhando com bibliotecas de importação e arquivos de exportação