Fórum Declarar DLL de forma dinamica, como fazer?? #325766

21/07/2006

0

Como posso fazer para declarar as funçoes de uma DLL de forma dinamica?? Há como fazer isso?


Xtreme

Xtreme

Responder

Post mais votado

21/07/2006

Declarar de forma dinâmica não conheço, o que pode ser feito é carregar em RunTime tanto a DLL quanto a função:
const
  User32 = ´User32.dll´;
type
  TMethod = function(lpClassName: PAnsiChar; lpWindowName: PAnsiChar): HWND; stdcall;
var
  hndl: THandle;
  method: TMethod;
begin
  hndl := LoadLibrary(User32);
  @method := GetProcAddress(hndl, PChar(´FindWindowA´));
  hndl := method(´TForm1´, nil);
  if hndl <> 0 then
    beep;
end;



Bruno Belchior

Bruno Belchior
Responder

Gostei + 1

Mais Posts

21/07/2006

Xtreme

Bom, [b:00792234c1]Bruno Belchior[/b:00792234c1] eu preciso carregar a seguinte DLL ´MP2032.DLL´, e algumas funcoes dela nao todas, tais como essas duas
function IniciaPorta( Porta: string ): integer; stdcall; far; external ´MP2032.DLL´;
function FechaPorta: integer; stdcall; far; external ´MP2032.DLL´;

bom nem todos meus clientes usam essa impressora ñ fiscal, mas o sistema é o mesmo para todos e nao posso ficar jogando essa DLL pra todo lado, e nem quero isso.
Eu nao compreendi muito bem teu exemplo e queria que vc me ajuda-se a entender, por exemplo como poderia pra carregar esta DLL e as duas funcoes que coloquei acima no teu exemplo?


Responder

Gostei + 0

21/07/2006

Bruno Belchior

Pelo que entendi, você não quer distribuir as DLL´s junto com a sua aplicação. Bem para esse meu exemplo, a modificação é que a DLL não foi carregada na inicialização do sistema, e sim posteriormente, mas de qualquer forma, ela (a DLL) obrigatoriamente deverá acompanhar o seu programa. Se estiver errado me corrija por favor.


Responder

Gostei + 0

24/07/2006

Xtreme

[quote:19c54660de=´Bruno Belchior´]Pelo que entendi, você não quer distribuir as DLL´s junto com a sua aplicação.[/quote:19c54660de]
Exato! Eu nao quero sair distribuindo a DLL pra todo lado, mas nos lugares onde ela existir meu sistema irá utiliza-la! Seria isso, se tiver eu uso, senao minhas impressoes seram feitas de outra forma!


Responder

Gostei + 0

25/07/2006

Xtreme

Acabei conseguindo implementar sua ideia em meu sistema, mas queria saber se a uma maneira mais simples de fazer isso. Apesar de ja ter resolvido meu problema, valeu pela ajuda cara.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar