[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