Importando e exportando

Você pode importar símbolos públicos para um aplicativo ou exportar as funções de uma DLL usando dois métodos:

  • Usar um arquivo de definição (. def) do módulo ao criar a DLL

  • Use as palavras-chave __declspec(dllimport) ou __declspec(dllexport) em uma definição de função no aplicativo principal

Usando um arquivo. def

Um arquivo de definição de módulo (. def) é um arquivo de texto que contém uma ou mais declarações do módulo que descrevem vários atributos de uma DLL. Se você não usar __declspec(dllimport) ou __declspec(dllexport) para exportar as funções de uma DLL, a DLL requer um arquivo. def.

Você pode usar arquivos. def Importar para um aplicativo ou Exportar de uma DLL.

Usando __declspec

Usos do Visual C++ __declspec(dllimport) e __declspec(dllexport) para substituir o __export palavra-chave anteriormente usado nas versões de 16 bits do Visual C++.

Você não precisará usar __declspec(dllimport) para o seu código compilar corretamente, mas isso permite que o compilador gere código melhor. O compilador é capaz de gerar códigos melhores, porque pode determinar se uma função existe em uma DLL ou não, o que permite que o compilador produzir um código que ignora um nível de indireção que normalmente seriam presente em uma chamada de função ultrapassou um limite DLL. No entanto, você deve usar __declspec(dllimport) para importar variáveis usadas em uma DLL.

Na seção de exportações do arquivo. def a adequada, __declspec(dllexport) não é necessária. __declspec(dllexport) foi adicionado para proporcionar uma maneira fácil de exportar funções a partir de um arquivo. exe ou. dll sem usar um arquivo. def.

O formato de arquivo executável portátil do Win32 foi projetado para minimizar o número de páginas que devem ser utilizadas para corrigir importações. Para fazer isso, ele coloca todos os endereços de importação para qualquer programa em um local chamado tabela de endereços ' Importar '. Isso permite que o carregador modificar apenas uma ou duas páginas ao acessar essas importações.

O que você deseja fazer?

Consulte também

Conceitos

DLLs