O ponto de partida da tecnologia plug-in é principalmente permitir que o software expanda funções de forma flexível, sem a necessidade de recompilar e publicar o programa principal (programa-quadro). Seu princípio é bastante simples. A funcionalidade do software é determinada por programas-quadro e plug-ins. Existe uma interface específica entre o programa-quadro e o plug-in, através da qual devem passar dados ou informações de controle para implementar funções de software. Portanto, desde que um programa (ou outra entidade funcional) esteja em conformidade com esta interface, ele é chamado de plug-in do programa-quadro.
As entidades de plug-in são geralmente divididas em dois tipos. Um é um programa que contém lógica, como uma biblioteca dinâmica, programa Exe, etc.; O primeiro método é usado principalmente em software de desenho e software de reprodução de mídia e é adequado para realizar funções complexas. O último método é usado principalmente para realizar a função Skin de software e outros módulos funcionais que não requerem cálculos complexos (há muitos jogos); ). Os níveis de software também são implementados desta forma, como o Lianliankan da Ada Software).
Este artigo fornece o programa-quadro e exemplos de uso para gerenciar DLL no processo de implementação do programa-quadro de plug-in Dll, como base para os leitores projetarem programas de plug-in. Especificamente, o programa-quadro precisa completar três funções: carregamento de plug-ins, chamada de função e desinstalação.
Na verdade, todo programa do painel de controle é um plug-in para o sistema operacional. Porque cada arquivo .cpl é uma DLL que implementa uma interface específica. O mesmo se aplica ao programa de serviço do Windows, que processa apenas mensagens específicas do Windows com base no programa original.
Na verdade, em termos gerais, todo programa executado no sistema operacional é um “plug-in” do software do sistema operacional.
Na verdade, no Delphi já existe um framework de gerenciamento de plug-ins, que é o bpl. A expansão de funções do plug-in também pode ser facilmente alcançada usando o pacote de componentes bpl. Contudo, este método tem uma falha: ele não suporta o desenvolvimento de plug-ins com outras ferramentas de desenvolvimento (como vb, vc++).
)
Duas classes básicas são definidas na unidade untDllManager:
TDll: A classe pai de todas as classes DLL, fornecendo operações relacionadas a carga e descarga;
TDllManager: classe contêiner da classe DLL. Suporta a desinstalação de entidades DLL excluindo elementos.
A seguir está um diagrama de classes: