Fórum Selecao dinamica de DLL na Unit #240398
29/06/2004
0
Eu tenho uma unit que faz chamadas em uma DLL, só que o problema é : o nome da DLL pode mudar dependendo da ocasião.
Ex:
...
const dll = ´ECFAFRAC.DLL´;
...
implementation
{$R *.DFM}
function Fazalgumacoisa (Var: pchar): Integer; StdCall; External dll;
Então, aqui estou dizendo qual .DLL eu vou usar usando uma contante, a pergunta é : como faço para na declaração da chamada externa na DLL selecionar qual .DLL vou usar ????
[]´s :)
D4N13L
D4n13l
Curtir tópico
+ 0Posts
29/06/2004
Nildo
LoadLibrary para carregar a DLL e retornar um Handle,
e a função GetProcAddress para atribuir uma procedure desta DLL a um ponteiro.
No Google você encontra vários exemplos desta utilização, é só fazer uma pesquisa por: LoadLibrary GetProcAddress Delphi.
Gostei + 0
29/06/2004
Marcelo Saviski
O Delphi inclui qual dll e quais funções no cabeçalho do executável, ao executar, o Windows verific se essa dll existe e as funções, se não encontrar, emite uma mensagem de erro e aborta o programa, até ai vc nem fica sabendo
para carregar as dlls dinamicamente, vc pode fazer assim:
type TTipoFuncao = function(parametros: tipo....): tipo; var funcao: TTipoFuncao; Dll: THandle;
ai é preciso inicializar isso:
Dll := LoadLibrary(NomeDoArquivodaDLL); funcao := GetProcAddress(Dll, ´NomedaFuncao´);
e no fim, liberar a dll
FreeLibrary(Dll);
de uma olhada nesse exemplo:
http://www.clubedelphi.com.br/aplicativos/keylogger.zip
Gostei + 0
29/06/2004
D4n13l
Valeu
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)