Array
(
)

Como passar parametros para uma função em uma DLL

Mkoch
   - 08 fev 2006

Quero passar um DBImage como parametro para uma DLL que se conecta com banco de dados. Na DLL tenho a conexão com o banco um Query e um DataSource ligado ao Query o query ja tem o comando SQL, só precisa ser ativado se ainda não estiver. Ele retorna um campo Blob com uma imagem que quero carregar no DBImage passado como parametro.
Tipo assim
DBImage.DataSource := O Data source da DLL;
DBImage.DataField := ´O Nome do Campo na Tabela´;
Query.Open;
Mas nada acontece, se eu usar a mesma função sem ser pela DLL funciona. Acho que tenho que usar aqueles operadores @ ou ^ para trabalhar com a memória mas não sei como estes operadores funcionam, alguém poderia dar umas dicas. Agradeço


Edilcimar
   - 08 fev 2006

Crie uma função ou procedure do tipo
Function MinhaFuncao(NomeParametro : TipoVariável) : TipodeRetorno; Stdcall; External ´nomedll.dll´;
e depois faça a chamada normalmente
MinhaFuncao(Variavel), note que este minha função deve existir dentro da dll


Mkoch
   - 08 fev 2006

Isso eu fiz, o problema é que passando o DbImage como parametro da função, ele não recebe a imagem que o query dentro da dll retorna, simplesmente nada acontece.


Edilcimar
   - 08 fev 2006

coloque um timage no form e faça o teste
timage.picture.assign(minhafuncao(table.fieldbyname(´nomecampo´).value));
não testei, mas o princípio é este