domingo, 30 de agosto de 2026
Home
Artigos
Banco de Dados
Access
Firebird
Microsoft SQL Server
MySql
Oracle
Sybase
BI
QlikView
Dicas de Internet
e-business
Hardware
Multimídia
Flash
Programação
.NET/ASP.NET
.NET/C#
.NET/Framework
.NET/VB.NET
ASP
C/C++
Clipper
Cobol
CSS
Delphi
Java
Javascript
JSP
Palm
Perl
PHP
Shell
Visual Basic
WAP
Redes
Segurança
Servidores E-mail
Servidores Web
Apache
Microsoft IIS
Sistemas Operacionais
AIX
DOS
HPUX
Linux
Palm OS
Solaris
True64
Windows 7
Windows 9X
Windows NT
Windows Vista
Windows XP
Software Review
PC
Storages
Veritas VM
Conteúdo atual do site:
[807] ítens, entre artigos, funções e documentos.
Pesquisa Rápida:
Últimos 3 acessos:
Alexandre Neves 03/03/2015 11:08:01 167 acesso(s) alexandre neves 03/03/2015 11:06:42 1 acesso(s) Marcelo Torres 21/01/2015 15:24:53 61 acesso(s)
Opções:
Listagem completa Listagem simples
Ranking Colaboradores:
Adenilton Rodrigues - [304] Alexandre Neves - [61] Douglas Freire - [54] Marcelo Giovanni - [53] Marcelo Torres - [43] Angelita Bernardes - [31] Addy Magalhães Cunha - [28] Manuel Fraguas - [24] Ludmila Valadares - [20] Marcelo Capelo - [18]
Veja alguns métodos de chamada à funções armazenadas em arquivos DLL externos.
3 formas de se chamar uma rotina em uma DLL Externa: ============== A DLL Exemplo: ============== library democalc; uses SysUtils, Classes; // Retorna a soma de dois valores passados como parametros Function Soma(Valor1, Valor2:Integer) : Integer; Export; Begin result := Valor1 + Valor2; End; Exports Soma; begin end. Obs: Para manter compatibilidade da DLL com outras linguagens, é recomendado chamar a cláusula Exports da seguinte forma: Exports Soma Index 1 Name 'Soma'; O Parâmetro Index irá incrementando em +1 a cada nova rotina exportada. O Parâmetro Name indicará o nome dessa rotina para chamadas externas. Não é obrigatório a coincidência com o nome interno. Para visualizar todas as rotinas exportadas por uma DLL use o utilitário TDUMP.EXE que acompanha o Delphi (/bin). Veja: C:\\DELPHI\\BIN> TDUMP DEMOCALC.DLL -ee Para gerar um TXT: C:\\DELPHI\\BIN> TDUMP DEMOCALC.DLL -ee > DEMOCALC.TXT ================================ A chamada externa pela aplicação ================================ Método 1: ========= A DLL é carregada juntamente com a aplicação e descarregada ao seu final. Function Soma(Valor1,Valor2:Integer):Integer; far; external 'DEMOCALC.DLL'; procedure TForm1.Button3Click(Sender: TObject); begin ShowMessage( IntToStr( Soma(1,10) ) ); end; Método 2: ========= A DLL é carregada juntamente com a aplicação e descarregada ao seu final. Interface function Soma(Valor1, Valor2:Integer):Integer; implementation function Soma; external 'Democalc.Dll' Name 'Soma'; procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage( IntToStr( Soma(1,10) ) ); end; Método 3: ========= A DLL é carregada explicitamente quando seu uso se fizer necessário, e descarregada ao comando do desenvolvedor. procedure TForm1.Button2Click(Sender: TObject); Type TSoma = Function(Valor1, Valor2 : Integer):Integer; var Handle : THandle; Soma : TSoma; begin Handle := LoadLibrary('DEMOCALC.DLL'); // Carrega a DLL if Handle<>0 then begin // Conseguiu? @Soma := GetProcAddress(Handle, 'Soma'); // Procura a rotina if @Soma<>nil then begin // Achou? ShowMessage( IntToStr( Soma(1,10) ) ); // Executa-a end; FreeLibrary(Handle); // Descarrega a DLL end; end; Se quiser economizar código, você pode unir a Declaração Type com a Var, evitando-se assim a definição do tipo TSoma. Veja: var Handle : THandle; Soma : Function(Valor1, Valor2 : Integer):Integer; begin (...) end; Quebra-Linha Colaborador..: Adenilton Rodrigues Categoria(s).: Delphi; Data.........: 06/06/2002 22:06:33 Visualizado..: 735 vezes Fonte........: AdeN Knowledge DB
Adenilton Rodrigues
Últimos Artigos deste colaborador Aplicação Intraweb com Main Menu e Frames - 16/05/2005 20:37:49 SQL em tabelas com Join em Access - 24/01/2005 21:06:59 Descarregando DLL's ISAPI/ACTIVEX/INTRAWEB - 10/12/2004 22:52:37
Últimos Artigos desta categoria Usando a função MessageBox - 16/06/2006 15:47:15 Atualização de Sistemas - 06/10/2005 01:07:16 CRÍTICA DE DATAS NO OBJETO EDIT SEM MENSAGEM DE ERRO DO DELPHI - 17/03/2006 14:58:31
13 pessoa(s) on-line neste site.