A biblioteca de vínculo dinâmico ou DLL, permite que um aplicativo para carregar apenas o código executável mínimo necessário na memória durante a execução. Sempre que o programa chama uma função em uma DLL , o sistema operacional carrega a DLL na memória , de acordo com as especificações do programador . Enquanto o programa em execução não faz referência a uma função de DLL , a DLL não precisa ocupar espaço. Isso economiza recursos e aumenta o desempenho de tempo de execução . Se a biblioteca eram estáticas , todo o código da biblioteca seria anexado ao código executável principal do programa , eo programa gigante teria que ficar na memória para todo o tempo de execução. A versão do Unix ou Linux de uma DLL do Windows é uma biblioteca de objetos compartilhados que é construída com a extensão SO . Windows, Unix e Linux têm convenções específicas para acessar as funções em DLLs ou bibliotecas compartilhadas . Instruções Exportação Windows DLL objetos usando Preprocessor Keyword
1
seu arquivo de cabeçalho DLL, colocar o " __declspec (dllexport) " palavra-chave antes de o protótipo de uma função , classe, membro da classe ou variável de dados na DLL. Esta palavra-chave acrescenta o protótipo da função de tabela de exportação da DLL.
2
Use valores ordinais de 1 a N no lugar de função ou classe nomes de membros para conservar o espaço ocupado pela tabela de exportação da DLL, onde N é o número de objetos ou funções na DLL .
3
Adicione o " __declspec (dllimport ) " palavra-chave antes que os protótipos de funções correspondentes no programa de chamada ou DLL. O programa de chamada importa as funções que as exportações de DLL .
Exportação DLL do Windows Funções Usando um arquivo de definição de módulo
4
Crie um arquivo de texto com o DEF extensão e adicioná-lo ao projeto para sua DLL no Visual Studio
5
Adicione a declaração "Biblioteca" com o nome da DLL depois da seguinte forma: .
BIBLIOTECA ReportWriter
6
Opcionalmente, adicione uma descrição de uma linha curta para a DLL da seguinte forma: . .
DESCRIÇÃO Esta é uma DLL para a funcionalidade de geração de relatório em MyProduct
Isto é recomendado
7
Adicione uma entrada para cada função ou membro da classe que a DLL quer exportar , com um número cardinal opcional. O número cardinal representa a função e toma valores entre 1 e N , onde N é o número de funções exportados pela DLL . Aqui está um exemplo:
RPT_init @ 1RPT_design @ 2RPT_run @ @ 3RPT_print 4
Após ligar todas as fontes e esse arquivo DEF , o compilador cria um arquivo de exportação com a extensão de EXP e um arquivo de biblioteca de importação , com a extensão de LIB . O compilador usa o arquivo EXP para criar a DLL. O arquivo LIB está ligado ao programa de chamada e mantém informações de importação sobre as funções na DLL .