[firebase-br] dll para firebird 64 bits.

suporte suporte suporte.suporte8 em gmail.com
Qua Set 21 17:43:29 -03 2011


Boa Tarde.

Muito obrigado por responder Cantu.
Tenho alguns livros seus, poderia me dizer qual e o livro es específico que
vc trata sobre isso...

eu devo ter muita sorte mesmo, pois tenho varias funções parecidas com a que
lhe enviei. shuhsuhsushu

Obrigado mesmo.

Em 21 de setembro de 2011 16:35, Carlos H. Cantu
<listas em warmboot.com.br>escreveu:

> UDFs que devolvem strings devem respeitar uma série de regras para que
> funcionem sem ferrar com o Firebird. Olhando para o seu código, eu
> diria que vc não esteja respeitando essas regras (vc não está locando
> memória para o retorno, e nem usando um parâmetro de entrada pra
> retornar). Se vc tiver meu livro, eu explico elas, e vc também pode
> procurar pela Internet.
>
> O fato de funcionar com o 2.1 pode ser pura "sorte/coincidência".
>
> Outra coisa, a FreeAdHocLib implementa zilhões de funções, e talvez vc
> possa usa-la (já que são testadas e confiáveis, e tem versões para 32
> e 64bits) ao invés de criar as suas.
>
> []s
> Carlos H. Cantu
> www.FireBase.com.br - www.firebirdnews.org
> www.warmboot.com.br - blog.firebase.com.br
>
> ss> Entao,
> ss>
> ss> vou detalhar um pouco mais sobre o problema.
> ss>
> ss> tenho um arquivo .dpr que contem algumas funções que eu uso com o
> firebird.
> ss> Todas elas compiladas com o delphi 7 para 32 bits.
> ss>
> ss> uma funcao es especial e esta :
> ss>
> ss> function ffilterNumeric (s: PChar): PChar; cdecl; export;
> ss> var
> ss>    r, i: Integer;
> ss>    Res : String;
> ss> begin
> ss>    for r := 1 to length(s) do begin
> ss>       // caso achou o caracter na array de interiros
> ss>       i := Pos(s^, ArrayWithOutInteiros);
> ss>       if i > 0 then begin
> ss>           Res := Res + ArrayWithOutInteiros[i];
> ss>       end;
> ss>       Inc(s);
> ss>    end;
> ss>    Result := PChar(Res);
> ss> end;
> ss>
> ss> Funciona perfeitamente com o firebird 2.1 32 bits. Ja com o firebird
> 2.5 não funciona.
> ss>
> ss> Quanto ao free pascal, eu tentei utilizar o fpc 2.2.4 64bits, mas
> ss> o problema e  que ai deu erro de sintaxe do codigo e tambem de
> conversões como
> ss> por exemplo "Illegal type conversion  : ShortString to ^Char"
> ss> Eu nao sou muito experiente, gostaria de saber se tem outra forma
> ss> de compilar estas funcoes sem ter que alterar o codigo fonte. Ou
> ss> entao em que linguaguem eu deveria escrevelas para que elas possam ser
> compiladas.
> ss>
> ss> Grato a todos.
> ss>
> ss>
> ss>
> ss> Em 20 de setembro de 2011 11:46, Carlos H. Cantu
> ss> <listas em warmboot.com.br>escreveu:
>
> ss> Já tentou o FreePascal?
> ss>
> ss>  []s
> ss>  Carlos H. Cantu
> ss>  www.FireBase.com.br - www.firebirdnews.org
> ss>  www.warmboot.com.br - blog.firebase.com.br
> ss>
>  ss>> Bom dia a todos.
>  ss>> Tenho uma questão que gostaria de discutir:
> ss>
>  ss>> tenho uma dll que roda perfeitamente com o firebird 2.1 - 32 bits no
> SO 64
>  ss>> bits. Mas ao tentar atualizar o firebird para a versão 2.5 64 bits
> não
>  ss>> consigo mais utilizar minha dll.
>  ss>> fiz o seguinte teste, utilizando o delphi xe2 compilei novamente
> minha dll
>  ss>> mudando a plataforma para 64 bits, assim consegui utilizar as
> chamadas das
>  ss>> funções, no entanto o resultado que obtive com as funções não foram
> os
>  ss>> mesmos que eu tinha com a dll compilada para 32 bits(compilada em
> delphi 7).
> ss>
>  ss>> Gostaria de saber se alguem conhece outro compilador que eu possa
> utilizar
>  ss>> para compilar minha dll para 64 bits ou outra forma de eu utilizar
> ela no
>  ss>> firebird 64 bits.
> ss>
>  ss>> Grato pela atenção.
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista