Compartilhar 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 estar 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ê exporta 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 você deseja 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á para a tabela de exportação da DLL. Isso pode ajudá-lo a minimizar o tamanho de sua DLL. A.Arquivo LIB 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 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 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 exportar uma definição, listada na ordem recomendada de uso:

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

  2. Um exportações a 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 de exportações, ele também cria uma biblioteca de importação, a menos que um arquivo de .exp é usado na compilação.

A seguir está 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