Trabalhando com DLLs (Documentação)
Amigos estou precisando de documentação sobre uso de DLLs por favor me ajudem. Quero armazenar funções em DLLs que serão usadas apenas uma vez. Quem puder me ajudar eu agradeço muito.
Orlando Frade
Curtidas 0
Respostas
Marcelo Saviski
05/11/2003
Como assim usadas apenas uma vez?
nova onda de Funções descartáveis agora? :) To zoando
qual é o problema, criar a dll ou usar as funções que estao nela?
nova onda de Funções descartáveis agora? :) To zoando
qual é o problema, criar a dll ou usar as funções que estao nela?
GOSTEI 0
Orlando Frade
05/11/2003
[quote:0559e672f6=´Marcelo Saviski´]Como assim usadas apenas uma vez?
nova onda de Funções descartáveis agora? :) To zoando
qual é o problema, criar a dll ou usar as funções que estao nela?[/quote:0559e672f6]
O problema é o seguinte:
- O programa tem algunas funções e procedimentos que são realizados somente quando ele inicia .
- O programa tem uma função grande que nem sempre é usada.
eu quero armazenar estas funções em uma DLL para que quando o usuário precise executar a rotina eu carrege e depois descarrege da memória.
é mais ou menos assim.
nova onda de Funções descartáveis agora? :) To zoando
qual é o problema, criar a dll ou usar as funções que estao nela?[/quote:0559e672f6]
O problema é o seguinte:
- O programa tem algunas funções e procedimentos que são realizados somente quando ele inicia .
- O programa tem uma função grande que nem sempre é usada.
eu quero armazenar estas funções em uma DLL para que quando o usuário precise executar a rotina eu carrege e depois descarrege da memória.
é mais ou menos assim.
GOSTEI 0
Beppe
05/11/2003
1) Escreva a dll
2) No seu projeto:
2.1) Para carregar a dll: [b:e0db3add50]DllUtilitarios := LoadLibrary(´MinhaDll.dll´);[/b:e0db3add50]
2.2) Localize o endereço das funções;
2.2.1) Digamos que você tenha uma função [b:e0db3add50]function Tal(Valor: Integer): Integer;[/b:e0db3add50]
Você declara um variável function pointer com o mesmo protótipo:
[b:e0db3add50]Tal: function(Valor: Integer): Integer;[/b:e0db3add50]
E carrega a rotina: [b:e0db3add50]@Tal := GetProcAddress(DllUtilitarios, ´Tal´);[/b:e0db3add50]
Chame: [b:e0db3add50]Retorno := Tal(12345);[/b:e0db3add50]
2.3) Terminou? [b:e0db3add50]FreeLibrary(DllUtilitarios);[/b:e0db3add50]
2) No seu projeto:
2.1) Para carregar a dll: [b:e0db3add50]DllUtilitarios := LoadLibrary(´MinhaDll.dll´);[/b:e0db3add50]
2.2) Localize o endereço das funções;
2.2.1) Digamos que você tenha uma função [b:e0db3add50]function Tal(Valor: Integer): Integer;[/b:e0db3add50]
Você declara um variável function pointer com o mesmo protótipo:
[b:e0db3add50]Tal: function(Valor: Integer): Integer;[/b:e0db3add50]
E carrega a rotina: [b:e0db3add50]@Tal := GetProcAddress(DllUtilitarios, ´Tal´);[/b:e0db3add50]
Chame: [b:e0db3add50]Retorno := Tal(12345);[/b:e0db3add50]
2.3) Terminou? [b:e0db3add50]FreeLibrary(DllUtilitarios);[/b:e0db3add50]
GOSTEI 0