Criando DLL com a IDE Lazarus – Tutorial DLL Lazarus – Parte 1

Neste pequeno artigos vamos ver de forma rápida e pratica como se criar uma DLL e realizar a chamada da mesma, utilizando os recursos da IDE do lazarus. Percebe-se que é basicamente da mesma forma que utilizamos para fazer esta rotina usando a IDE do delphi.

Neste tutorial vou esta demonstrando de forma prática como se criar DLL usando a plataforma de desenvolvimento Free Pascal chamada Lazarus em sua versão 0.9.28.2.

 

Sem mais delongas, vamos por as mãos na obra.

 

O primeiro passo, após abrir a IDE do lazarus, será fechar todos os arquivos que porventura estejam abertos, lembrando que o lazarus tem a característica de recuperar o último projeto alterado.

 

Já com os arquivos fechados, selecione no menu principal a opção File->New e na janela que se abre, localize a opção “Project” e “Library”, conforme demonstrado na imagem abaixo:

 
 

Na seqüência clique em “OK” para confirmar.

 

Agora salve o projeto em uma pasta de sua preferência com o nome de DLLLazarus ou como preferir, e em seguida selecione no menu principal a opção Projetct->View Source para que possamos visualizar os códigos do mesmo. Deverá ser apresentada uma estrutura conforme a imagem abaixo:

 

Agora adicione uma nova “Unit” utilizando a opção File->new unit do menu principal e salve esta com o nome de “funções.pas” ou outro nome conforme preferir.

 

Agora codifique esta unit com os seguintes códigos:

 

unit funcoes; {$mode objfpc}{$H+} interface uses Classes, SysUtils; function RetornaTotalCampos(var Mensagem:String;pValor1,pValor2:Double):Double;stdcall; implementation function RetornaTotalCampos(var Mensagem:String;pValor1,pValor2:Double):Double;stdcall; begin Mensagem:=''; // verifica se os valores são validos if (pValor1 <= 0) or (pValor2<=0) then Mensagem:='Os valores devem ser maior que zero!'; // resultado Result := pValor1 + pValor2; end; end.

 

Agora vá aos códigos principais do projeto e vamos realizar algumas mudanças que são extremamente necessárias. Mas antes é importante saber que o que irá definir se ao compilar o projeto será criado uma DLL ou um EXE, é a classe inicial que até o momento esta como “Program DLLLazarus” onde DLLLazarus é o nome que usei para salvar o projeto. Devemos então primeiramente alterar para “Library DLLLazarus” e desta forma será gerado uma DLL.

 

Agora em Uses adicione a unit ShareMem, para evitar problemas com declarações de String’s e adicione também a classe exports e nela “RetornaTotalCampos”, que é o nome da função criada na unit funções.pas. Veja o exemplo de como deverá ficar abaixo:

 

Library DLLLazus; {$mode objfpc}{$H+} uses ShareMem, {$IFDEF UNIX}{$IFDEF UseCThreads} cthreads, {$ENDIF}{$ENDIF} Interfaces, // this includes the LCL widgetset Forms, LResources, funcoes { you can add units after this }; {$IFDEF WINDOWS}{$R DLLLazus.rc}{$ENDIF} exports RetornaTotalCampos; begin {$I DLLLazus.lrs} Application.Initialize; Application.Run; end.

 

Agora basta dar um Build no projeto para ser gerado a nossa DLL.

 

Na próxima parte deste artigo vamos ver um exemplo de chamada da função da DLL em um outro projeto.

 

Até lá!


Artigos relacionados