Declarar DLL de forma dinamica, como fazer??
Como posso fazer para declarar as funçoes de uma DLL de forma dinamica?? Há como fazer isso?
Xtreme
Curtidas 0
Melhor post
Bruno Belchior
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;
GOSTEI 1
Mais Respostas
Xtreme
21/07/2006
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
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?
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?
GOSTEI 0
Bruno Belchior
21/07/2006
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.
GOSTEI 0
Xtreme
21/07/2006
[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!
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!
GOSTEI 0
Xtreme
21/07/2006
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.
GOSTEI 0