Partilhar via


EXPORTAÇÕES

Apresenta uma seção de um ou mais definitions que são funções exportadas ou dados.Cada definição deve estar em uma linha separada.

EXPORTS
definitions

Comentários

O exportações palavra-chave pode ser na mesma linha como a primeira definição ou em uma linha anterior.O arquivo. def pode conter um ou mais exportações instruções.

A sintaxe para exportação definitions é:

entryname[=internalname] [@ordinal [NONAME]] [PRIVATE] [DATA]

nome_da_entrada é o nome de função ou variável que você deseja exportar.Isso é necessário.Se o nome que você exporte for diferente do nome da dll, especifique o nome da exportação na DLL com internalname.Por exemplo, se sua DLL exporta uma função, func1() e quiser que ele seja usado como func2(), você especificaria:

EXPORTS
func2=func1

@ordinal permite especificar que um número e não o nome da função, irá a dll exporta a tabela.Isso pode ajudá-lo a minimizar o tamanho de sua DLL.A.Arquivo LIB irá conter o mapeamento entre o ordinal e a função, que permite que você use o nome da função, como faria normalmente em projetos que usam a DLL.

Opcional NONAME palavra-chave permite que você exporte ordinal somente e reduzir o tamanho da tabela de exportação na DLL resultante.No entanto, se você quiser usar GetProcAddress na DLL, você deve saber o ordinal porque o nome não será válido.

A palavra-chave opcional particular impede que Nome_da_entrada seja feita na biblioteca de importação gerada pelo LINK.Ele não tem efeito sobre a exportação da imagem também é gerado pelo LINK.

A palavra-chave opcional dados Especifica que uma exportação de dados, não código.Por exemplo, você pode exportar uma variável de dados da seguinte maneira:

EXPORTS
i DATA

Quando você usa particular e dados para a exportação do mesma, particular deve preceder dados.

Existem três métodos para a exportação de uma definição, listada na ordem recomendada de uso:

  1. O __declspec(dllexport) palavra-chave no código fonte

  2. Um exportações instrução em um arquivo. def

  3. Um /Exportar especificação de um comando LINK

Todos os três métodos podem ser usados no mesmo programa.Quando o LINK cria um programa que contenha as exportações, ele também cria uma biblioteca de importação, a menos que um arquivo de .exp é usado na compilação.

A seguir há uma seção de exportações de exemplo:

EXPORTS
   DllCanUnloadNow      @1     PRIVATE   DATA
   DllWindowName = Name        DATA
   DllGetClassObject    @4 NONAME   PRIVATE
   DllRegisterServer    @7
   DllUnregisterServer

Observe que quando você exporta uma variável de uma DLL com um arquivo. def, você não precisa especificar __declspec(dllexport) na variável.No entanto, em qualquer arquivo que usa a DLL, você deve ainda usar __declspec(dllimport) na declaração de dados.

Consulte também

Referência

Regras para instruções de definição de módulo