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:
O __declspec(dllexport) palavra-chave no código fonte
Um exportações instrução em um arquivo. def
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.