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á!


continue assim, precisamos de pessoas que incentivem essa otima ferramenta de desenvolvimento multi-plataforma e além do mais open-source. Valew!
em 27/9/2011 16:58 - Responder


em 29/9/2011 07:04 - Responder
Space do autor


3
0
