Ler/Gravar em Var que está numa DLL
23/02/2006
0
tenho algumas variáveis (integer, string) em uma unit que está dentro de uma DLL,
como faço pra ler ou gravar nessas variáveis???
abraço,
Eniorm
Posts
23/02/2006
Andremuller
se tu usasse packages aí era totalmente transparente
24/02/2006
Eniorm
e neste caso como devo proceder?
teria uma explicação desse funcionamento?
bye
24/02/2006
Andremuller
24/02/2006
Eniorm
Amigo, me desculpe pela ignorância, mas não estou acostumado a trabalhar com DLLs, poderia me dar um exemplo de código?
Abraço
24/02/2006
Andremuller
library TesteDll; (...) procedure MostrarMensagem(WndHandle: THandle; Mensagem: string); var frm: TFormMensagem; begin Application.Handle := WndHandle; frm := TFormMensagem.Create(nil); try frm.ShowModal; finally frm.Free; end; end; exports MostrarMensagem; begin end.
na tua aplicação tu carrega os métodos, tipo:
procedure TForm1.ExecutarMensagem; var Handle: THandle; MM: procedure(WndHandle: THandle; Mensagem: string); begin Handle := 0; try Screen.Cursor := crHourGlass; Handle := LoadLibrary(PAnsiChar(´TesteDll.dll´)); if Handle = 0 then ShowMessage(´Não carregou.´) else begin MM := GetProcAddress(Handle, ´MostrarMensagem´); MM(Application.Handle, Edit1.Text); end; finally FreeLibrary(Handle); Screen.Cursor := crDefault; end; end;
O Handle que eu passo no exemplo é para a dll aparecer na mesma janela da aplicação principal. MM é de declaração igual ao método exportado e é através dele que disparamos o que está na dll.
Então se tu precisar passar mais alguma coisa na dll inclui junto dos parâmetros. No exemplo só passo Mensagem: string, mas poderia ser Mensagem1, Mensagem2: string, o que também mudaria a declaração de MM.
Foi?
24/02/2006
Andremuller
Clique aqui para fazer login e interagir na Comunidade :)