[firebase-br] Jogo dos 7 erros UDF
Alexandre
alexandrecrt em gmail.com
Sáb Abr 23 10:16:02 -03 2016
Em 22/04/2016 22:29, Carlos H. Cantu escreveu:
> UDF's escritas em Delphi devem ser declaradas com cdecl e não como
> stdcall, pois o Firebird é feito em C.
Bom, stdcall não impede que uma aplicação escrita em c/c++ use esta dll.
Veja que, citei em outra mensagem, que escrevi a dll tanto em C++ quanto
em Delphi.
O fato de uma aplicação ser escrita em C não significa que a mesma não
possa usar uma dll gerada com a diretiva stdcall (gerada por outra
aplicação). Tanto pode que, a dll que escrevi usando a diretiva stdcall
eu chamo e utilizo sem problema algum num aplicativo teste escrito em
CBuilder (gerada tanto como uma dll c ou como c++).
> A> Tenho o livro do Cantu, mas lá no capítulo que trata de UDF nada difere
> A> do que estou fazendo.
>
> Acho que vc não leu o livro direito então, pois os exemplos nele estão
> todos como cdecl :)
Realmente, não li seu livro direito pois lá estão todas como cdecl, você
tem razão. :)
Bom, dentro desse seu alerta, retirei a diretiva stdcall e deixei apenas
a cdecl.
Agora não derrubou o servidor, porém quando executo um select soma(1,2)
from rdb$database é informado que a função soma não está definida ....
Antes que pergunte, sim, exportei a função (como sempre fiz).
Vou ver aqui no CBuilder (pois o Delphi eu tinha instalado apenas para
teste) se existe alguma configuração a mais a ser feita.
Mais detalhes sobre a lista de discussão lista