BGD.DLL e FREEIMAGE.DLL com HARBOUR 3.2

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
Linguagemclipper
Usuário Nível 3
Usuário Nível 3
Mensagens: 240
Registrado em: 16 Abr 2016 17:33
Localização: Maceió/AL
Contato:

BGD.DLL e FREEIMAGE.DLL com HARBOUR 3.2

Mensagem por Linguagemclipper »

Estou tentando usar as DLLs, mas estou tento problemas com as LIBs
I:/HB32/lib/win/mingw/libbgd.lib: file not recognized: File format not recognized

Na pasta I:\hb32\lib\win\mingw tem uma libFreeImage.a, mas não ví nada que pudesse ser relacionado à BGD.

No xHarbour era só eu usar: fi_lib.lib; gdlib.lib; libbgd.lib e libfi.lib.

Para criar a libbgd.lib:
impdef -a libbgd.def bgd.dll
implib -a libbgd.lib libbgd.def

Para criar a libfi.lib:
impdef -a libfi.def freeimage.dll
implib -a libfi.lib libfi.def

Enfim, como faço para utilizar essas DLLs com o HB32?
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

BGD.DLL e FREEIMAGE.DLL com HARBOUR 3.2

Mensagem por Claudio Soto »

Hola,
si no entendí mal lo que quieres es usar un archivo de biblioteca .lib con hb y el compilador mingw.

Los compiladores gcc (como mingw) utilizan un formato de biblioteca distinto al .lib, es decir utilizan el formato de librería .a

Para poder usar las .lib con mingw tienes que convertirla al formato tipo .a con alguna herramienta.

Ver por ejemplo
https://code.google.com/archive/p/lib2a/
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar do usuário
Linguagemclipper
Usuário Nível 3
Usuário Nível 3
Mensagens: 240
Registrado em: 16 Abr 2016 17:33
Localização: Maceió/AL
Contato:

BGD.DLL e FREEIMAGE.DLL com HARBOUR 3.2

Mensagem por Linguagemclipper »

Gracias, yo he bajado el tool, los archivos .a fueram creados y compilados sin error, pero no funcionó.
En xHarbour habia 2 libs para BGD e 2 libs para FreeImage. Esto me quedó una cierta duda.
Entonces como LIB2A piede un archivo .DEF pensé que fuesen los archivos creados desde este camino:

Código: Selecionar todos

impdef -a libbgd.def bgd.dll
implib -a libbgd.lib libbgd.def
Alfinal, yo intenté con la otra lib también pero dio un error.
He percebido que esto usa la BCC55 mientras HB32 usa GCC...
Todavía, configuré el archivo LIB2A com la lib supra, dll y def. Lo arquivo .a fué creado pero no funcionó.
Estoy piensando en las otras libs... xHarbour necesita de GDLIB.LIB y LIBBGD.LIB para usar BGD.DLL mientras Harbour solo nececita de una lib? Porque solo pude convertir LIBBGD.LIB para libbgd.a y como queda la otra lib?

Mi archivo .HBP contiene:

Código: Selecionar todos

#DEBUG
-b
libhbdebug.a

#BGD e FreeImage
libbgd.a
libFreeImage.a

#DEFINES
-D__GD__
-D__FREEIMAGE__
Otra cosa, yo necessito definir las #DEFINES supra pero no sé si el problema és esto (si yo hice cierto) o las libs. Voy a investigar con DEBUG estaba usando -inc que no dejaba compilar.
Estoy migrando una herramienta que crié en xHarbour para Harbour que nececita de estas DLLs.
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Avatar do usuário
Linguagemclipper
Usuário Nível 3
Usuário Nível 3
Mensagens: 240
Registrado em: 16 Abr 2016 17:33
Localização: Maceió/AL
Contato:

BGD.DLL e FREEIMAGE.DLL com HARBOUR 3.2

Mensagem por Linguagemclipper »

Descobrí que precisava linkar hbfimage.hbc para usar a Freeimage.
Só falta a BGD.
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Avatar do usuário
Linguagemclipper
Usuário Nível 3
Usuário Nível 3
Mensagens: 240
Registrado em: 16 Abr 2016 17:33
Localização: Maceió/AL
Contato:

BGD.DLL e FREEIMAGE.DLL com HARBOUR 3.2

Mensagem por Linguagemclipper »

Freeimage és solo poner hbfimage.hbc y libFreeImage.a en la compilación con hbmk2 y está listo!
Yo necesito saber como hacer ahora con BGD.DLL porque queda la funcción TCode():New().
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

BGD.DLL e FREEIMAGE.DLL com HARBOUR 3.2

Mensagem por Claudio Soto »

Las .DLL no se linkan dentro del ejecutable, se llaman las funciones desde el programa como lo hacías en xhb, con callDll.
Si quieres linkarla debes convertir de .dll a .lib o .a
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar do usuário
Linguagemclipper
Usuário Nível 3
Usuário Nível 3
Mensagens: 240
Registrado em: 16 Abr 2016 17:33
Localização: Maceió/AL
Contato:

BGD.DLL e FREEIMAGE.DLL com HARBOUR 3.2

Mensagem por Linguagemclipper »

Sí amigo, ya lo sé.
No lo sé como hacer para trabajar con GD y HB32. Encontré un enlace en ese forum: http://www.hmgforum.com/viewtopic.php?f ... bgd#p17559
Pero no me ayudó mucho porque no tengo el fichero \contrib\hbgd\tests\ en HB32. La persona usaba HB30.
Bajé todos los arquivos del http://gnuwin32.sourceforge.net/packages/gd.htm pero no tengo gd.ch ni hbgd.
Almenos logré la libgd.dll.a.
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

BGD.DLL e FREEIMAGE.DLL com HARBOUR 3.2

Mensagem por Claudio Soto »

Acá te dejo el contrib de hb
Anexos
hb_contrib_hbgd.rar
(89.2 KiB) Baixado 202 vezes
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar do usuário
Linguagemclipper
Usuário Nível 3
Usuário Nível 3
Mensagens: 240
Registrado em: 16 Abr 2016 17:33
Localização: Maceió/AL
Contato:

BGD.DLL e FREEIMAGE.DLL com HARBOUR 3.2

Mensagem por Linguagemclipper »

Vale! Muchas gracias!
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Avatar do usuário
Linguagemclipper
Usuário Nível 3
Usuário Nível 3
Mensagens: 240
Registrado em: 16 Abr 2016 17:33
Localização: Maceió/AL
Contato:

BGD.DLL e FREEIMAGE.DLL com HARBOUR 3.2

Mensagem por Linguagemclipper »

Hola Claudio, desafortunadamente no logré exito.
En mi .HBP puse:

Código: Selecionar todos

#BGD e FreeImage
hbgd.hbc
hbfimage.hbc
Pero me dio error con la GD:
I:/hb32/comp/mingw/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lhbgd
Yo busqué en ese camiño y encontré listo las LIBs correspondientes del xHarbour para FreeImage:
  • libffi.a
    libffi.dll.a
Pero nada de GD.
Entonces y fué en la carpeta: I:\hb32\contrib\hbgd y ejecuté hbmk2 hbgd.hbp:
I:\hb32\contrib\hbgd>HBMK2 HBGD.HBP
hbmk2[HBGD]: Atenção: Faltando a dependência: gd
Entonces puse todos os archivos bajados con las dependencias etc en la misma carpeta pero el error continua:
I:\hb32\contrib\hbgd>DIR
O volume na unidade I é RAID0
O Número de Série do Volume é E879-3727

Pasta de I:\hb32\contrib\hbgd

30/08/2020 09:49 <DIR> .
30/08/2020 09:49 <DIR> ..
30/08/2020 09:49 <DIR> bin
30/08/2020 09:49 <DIR> contrib
30/06/2020 13:01 <DIR> doc
30/06/2020 13:01 5.158 gd.ch
30/06/2020 13:01 7.239 gd.prg
30/06/2020 13:01 9.018 gdbar.prg
30/06/2020 13:01 17.222 gdbarcod.prg
30/06/2020 13:01 28.627 gdchart.prg
30/06/2020 13:01 28.983 gdimage.prg
30/06/2020 13:01 64.157 gdwrp.c
30/06/2020 13:01 221 hbgd.hbc
30/06/2020 13:01 448 hbgd.hbp
30/06/2020 13:01 3.794 hbgd.hbx
30/08/2020 09:49 <DIR> include
30/08/2020 09:49 <DIR> lib
30/08/2020 09:49 <DIR> man
30/08/2020 09:49 <DIR> manifest
30/06/2020 13:01 <DIR> tests
10 arquivo(s) 164.867 bytes
10 pasta(s) 310.191.587.328 bytes disponíveis

I:\hb32\contrib\hbgd>HBMK2 HBGD.HBP
hbmk2[HBGD]: Atenção: Faltando a dependência: gd
Y entonces todavía nada.
Así como había 2 archivos del xHarbour para FreeImage encontré 2 para Harbour en I:\hb32\comp\mingw\lib. Sin embargo no estou logrando las benditas libs del GD.
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

BGD.DLL e FREEIMAGE.DLL com HARBOUR 3.2

Mensagem por JoséQuintas »

Acho que é igual no XHarbour:

- Tem contribuição que só vai ser gerada se baixar os arquivos adicionais, que não fazem parte do Harbour.
- Tem contribuição que só vai funcionar na máquina destino se copiar exatamente as mesmas DLLs usadas na máquina de desenvolvimento
- E convém lembrar que pra cada uma delas pode existir versão 32 ou 64 bits, tem que ser igual à versão do Harbour sendo usada.

Acho que são assim: freeimage, libcurl, openssl, hbmysql, e outras
NÃO uso nada disso, então não sei dizer sobre detalhes.

As LIBs costumam ser separadas por compilador: lib\win\mingw, lib\win\mingw64, lib\win\bcc, lib\win\msvc, lib\win\msvc64
Isso permite ter na máquina vários compiladores C ao mesmo tempo, inclusive 32 e 64 bits.

O importante é:
- precisa do harbour.exe
- precisa de um compilador C
- precisa das LIBs geradas pra o compilador C que vai usar

E se precisa de LIB especial, dessas que dependem de algo mais, ou baixa uma versão pronta, ou baixa o que precisa pra gerar a contrib.

Ao mesmo tempo que isso é muito chato, se por acaso um compilador C deixar de existir, podemos usar o outro.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Linguagemclipper
Usuário Nível 3
Usuário Nível 3
Mensagens: 240
Registrado em: 16 Abr 2016 17:33
Localização: Maceió/AL
Contato:

BGD.DLL e FREEIMAGE.DLL com HARBOUR 3.2

Mensagem por Linguagemclipper »

O problema é baixar o que precisa para gerar essa contrib hbgd, já baixei um monte de coisa e não compila essa bendita lib.
Eu usava o TortoiseCVS para baixar o xHarbour antigamente e tinha tudo prontinho lá. http://www.tortoisecvs.org/
Hoje em dia parece que estão usando o github no lugar to CVS... Lá no github não encontro essa contrib pronta.
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

BGD.DLL e FREEIMAGE.DLL com HARBOUR 3.2

Mensagem por JoséQuintas »

É por essas e outras, que o Harbour 3.4 é the best.
d:\github\harbour34\contrib\hbgd>HBMK2 -w3 -es2 -m -n *.hbp -strip -compr -workdir=c:\temp -q -Id:\cdrom\FONTES\build\
hbmk2: Processando opções do ambiente: -comp=mingw
hbmk2: Processando arquivo de configuração: d:\harbour\bin\hbmk.hbc
hbmk2 [hbgd]: Atenção: Faltando a dependência: gd
hbmk2 [hbgd]: Hint: Aponte as variavéis de ambiente HBMK_WITH_GD ou HB_WITH_GD
para o diretório que contém cabeçalho 'gd.h'
hbmk2 [hbgd]: Dica: URL(s) de Projeto: https://libgd.github.io/
Na compilação mostrou o link, vai lá baixa, salva numa pasta, e cria HB_WITH_GD=nome da pasta
Depois compila de novo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

BGD.DLL e FREEIMAGE.DLL com HARBOUR 3.2

Mensagem por asimoes »

Quintas,

Onde o harbour indica o projeto gd não tem a dll necessária para criar a lib, só aqui: https://sourceforge.net/projects/gnuwin ... /2.0.33-1/ gd-2.0.33-1-bin.zip
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Responder