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
The EXPORTAÇÕES palavra-chave pode ser na mesma linha sistema autônomo a primeira definição ou em uma linha anterior.O arquivo .def pode conter um ou mais EXPORTAÇÕES instruções.
A sintaxe exportar 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 exportar na DLL com InternalName.Por exemplo, se sua DLL exporta uma função, func1() e você deseja que ele seja usado sistema autônomo func2(), especifique:
EXPORTS
func2=func1
@ordinal permite que você especificar que um número e não o nome da função, irá para a tabela de exportar da DLL. Isso pode ajudar você minimizar o dimensionar da sua DLL.O arquivo .lib conterá o mapeamento entre o ordinal e a função, que permite que você use o nome da função, sistema autônomo faria normalmente em projetos que usam a DLL.
O opcionalNONAME palavra-chave permite que você exporte ordinal somente e reduzir o dimensionar da tabela de exportar na DLL resultante.No entanto, se você quiser usar GetProcAddress na DLL, você deve conhecer o ordinal como o nome não será válido.
A palavra-chave opcional PARTICULAR impede quenome_da_entrada de ser colocado na biblioteca de importação gerada pelo LINK.Ele não tem efeito sobre a exportar da imagem também gerado pelo LINK.
A palavra-chave opcional DADOS Especifica que uma exportar 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 and DADOS exportar mesma, PARTICULAR deve preceder DADOS.
Há três métodos para a exportação de uma definição, listada na ordem recomendada de uso:
The __declspec(dllexport) palavra-chave no código-fonte
An EXPORTAÇÕES demonstrativo em um arquivo .def
An / exportarespecificação de em um LINK de comando
Todos os três métodos podem ser usados no mesmo programa.Quando o LINK cria um programa que contenha exportações, ele também cria uma biblioteca de importação, a menos que um arquivo .exp é usado na compilação.
Uma seção EXPORTS do exemplo é:
EXPORTS
DllCanUnloadNow @1 PRIVATE DATA
DllWindowName = Name DATA
DllGetClassObject @4 NONAME PRIVATE
DllRegisterServer @7
DllUnregisterServer
Note 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.