[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