Delphi usa DLL para implementar um exemplo simples de plug-in
Este é o código da DLL
Código de implementação:
biblioteca MyDll; usa SysUtils, Dialogs, Classes; procedimento ShowInfo(info:PChar);stdcall; fim; exporta ShowInfo, GetCaption; {$R *.res} início fim.
Este é o código que chama o formulário
Este exemplo usa apenas uma DLL, portanto, quando houver várias DLLs, você precisará percorrer o diretório onde a DLL está localizada e carregá-las em sequência.
unidade Principal; interface usa Windows, Mensagens, SysUtils, Variantes, Classes, Gráficos, Controles, Formulários, Diálogos, StdCtrls, Menus, ExtCtrls tipo TShowInfo = procedimento (info:PChar);stdcall = função : PChar;stdcall; = classe(TForm) Botão1: Botão2: MenuPrincipal1: TMainMenu; Image1: TImage; procedimento Button2Click(Sender: TObject); private { Declarações privadas } FHandel : THandle; //Identificador de DLL FProAddress: Ponteiro; do procedimento DLL LoadPlusIn; //Carregar procedimento de plug-in (DLL) ItemClick(Sender: TObject) //Evento de clique no menu personalizado public); { Declarações públicas } end; var Form1: TForm1; implementação {$R *.dfm} procedimento TForm1.Button2Click(Sender: TObject); ; //Obter endereço se @showinfo <> nulo então showinfo(PWideChar(TMenuItem(Sender).Caption)); //Executa ShowInfo no final da DLL; procedimento TForm1.LoadPlusIn; var getcaption: TGetCaption; Carregando se FHandel = 0 então comece ShowMessage('Falha no carregamento! '); Sair; fim senão começar @getcaption := GetProcAddress(FHandel,'GetCaption'); //Obter o endereço GetCaption na DLL se @getcaption <> nil então começar item := TMenuItem.Create(MainMenu1); Crie um Item de Menu.Caption := getcaption; //Obter a Legenda, ou seja, chamar GetCaption na DLL FProAddress := GetProcAddress(FHandel,'ShowInfo'); //Obter o endereço de ShowInfo na DLL item.OnClick := ItemClick; //Atribuir o evento de clique ao item de menu MainMenu1.Items.Add(item); fim do menu principal;
Se você tiver alguma dúvida, deixe uma mensagem ou vá até a comunidade deste site para se comunicar e discutir. Obrigado pela leitura, espero que possa ajudar a todos.