Migrando de Xharbour 1.0 para Harbour 2.0...

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

Moderador: Moderadores

lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Migrando de Xharbour 1.0 para Harbour 2.0...

Mensagem por lugab »

Ola masters do fórum,

Tenho um sisteminha clipper, que converti com sucesso para o xharbour 1.0 , em modo texto..

Agora, estou aqui tentando compilar ele no HARBOUR 2.0, pois, todo mundo aqui do fórum vem nos alertando que o xharbour já era...

Então, as seguintes libs, não existem no Harbour com este nome. Gostaria q vcs me ajudassem e informassem qual o nome correto delas , ao usar o Harbour..

- Pcrepos.lib
- Dbfcdx.lib
- Dbfntx.lib
- Dbffpt.lib

Na compilação também foi relatado a ausência das funções abaixo.

- Hb-Fun-PrintFileraw
- Hb-Fun_Win32prn
- Hb_Fun_getprinters
- Hb_Fun_Defaults
- Hb_Fun_OpenProcess

Possivelmente, essas funções acima fazem parte de alguma dessas libs que faltam no harbour ou, simplesmente elas mudaram de nome.

Gostaria q vcs me dissessem em qual lib do HARBOUR 2.0 eu encontro essas funções.

Grato a todos,

GAbriel
lugab
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Re: Migrando de Xharbour 1.0 para Harbour 2.0...

Mensagem por Stanis Luksys »

Olá,

Pode ser que o pessoal mais atualizado mate a charada só de ver os nomes, mas seria interessante você dizer como você compila quando usa o XHarbour e como compila quando usa o Harbour. Se possível copie seu(s) script(s) de compilação aqui.

*****CORRIGINDO*****/:

Provavelmente o nome das LIBs que você procura são neste formato rddntx.lib, mas não tenho certeza.

Eu estava errado no que havia escrito (por isso apaguei), as LIBs estão todas aqui sim, verifique se corresponde com as que você possue, desconsiderando o "lib" no começo do nome dos arquvos.

Código: Selecionar todos

libhbcpage.a            libhbnortl.a   libhbxbp.a
libgtcgi.a              libhbcplr.a    libhbnulrdd.a  libhbziparc.a
libgtcrs.a              libhbct.a      libhbpcre.a    liblibhpdf.a
libgtpca.a              libhbdebug.a   libhbpp.a      liblibpng.a
libgtsln.a              libhbextern.a  libhbrdd.a     librddcdx.a
libgtstd.a              libhbgt.a      libhbrtl.a     librddfpt.a
libgttrm.a              libhbhpdf.a    libhbsix.a     librddnsx.a
libharbour-2.0.0.so*    libhbhsx.a     libhbsms.a     librddntx.a
libharbourmt-2.0.0.so*  libhblang.a    libhbsqlit3.a  librddsql.a
libharbourmt.so@        libhbmacro.a   libhbtip.a     libsqlite3.a
libharbour.so@          libhbmemio.a   libhbtpathy.a  libxhb.a
libhbbmcdx.a            libhbmisc.a    libhbuddall.a  libxpp.a
libhbbtree.a            libhbmzip.a    libhbusrrdd.a
libhbclipsm.a           libhbnetio.a   libhbvm.a
libhbcommon.a           libhbnf.a      libhbvmmt.a
As funções impressora, me parece que estão na hbwin do contrib. Não sei pra que serve, e provavelmene por estar no linux, não foi gerada aqui.

Abraços!
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Avatar do usuário
jairfab
Usuário Nível 3
Usuário Nível 3
Mensagens: 252
Registrado em: 21 Mai 2007 09:43
Localização: São Paulo, Região Leste - Suzano

Re: Migrando de Xharbour 1.0 para Harbour 2.0...

Mensagem por jairfab »

Ja que voce vai mudar , por que ja nao utiliza a versao 2.1 que vem junto com a minigui extend, a funcao win32prn vai mudar de nome e so voce altera em um arquivo ch muintas funcoes do xharbour a mesma vem com nome diferente no harbour.


As libs voce pode compilar ... mas voce perceber que tem librddcdx.a librddfpt libhbpcre.a etc...


o leonardo ja postou aqui no forum o nome da função correspondente da class winprn
Delpji 7, harbour 3.2, xharbour 1.2.3, Bcc7, Minigw, Minigui 19.11, hwgui 2.20, FiveWin 19.05 Gtwvw, Gtwvg, C# VS 2017
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Re: Migrando de Xharbour 1.0 para Harbour 2.0...

Mensagem por lugab »

Obrigado Stanio e Jaifab

Jairfab , o que eu localizei na pasta do meu Harbour 2, foi:

Rdcdx.lib
Rdntx.lib
e
Rdfpt.lib

É diferente dos nomes q vc postou: LibRddCdx.lib LibRddntx.li e Librddfpt.lib

1- Serã que são a mesma coisa ?

2-Nao achei a lib correspondente a Pcrepos.lib

3-Tb não achei nada que tenha as classes win32prn..

Não sei como vcs conseguem usar o harbour, com toda essa carência de informações..
lugab
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Re: Migrando de Xharbour 1.0 para Harbour 2.0...

Mensagem por Stanis Luksys »

Olá,
jairfab escreveu: É diferente dos nomes q vc postou: LibRddCdx.lib LibRddntx.li e Librddfpt.lib
1- Serã que são a mesma coisa ?
Stanis Luksys escreveu:...verifique se corresponde com as que você possue, desconsiderando o "lib" no começo do nome dos arquvos.
lugab escreveu:3-Tb não achei nada que tenha as classes win32prn..
Stanis Luksys escreveu:As funções de impressora, me parece que estão na hbwin do contrib. Não sei pra que serve, e provavelmene por estar no linux, não foi gerada aqui.
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Re: Migrando de Xharbour 1.0 para Harbour 2.0...

Mensagem por lugab »

Gracias, Stanis..

Obrigado por repetir sua resposta, pq eu falhei em não esmiuçar ela..

Coloquei a HBWIN.LIB e finalmente apareceu a função Win32Prn()

Tb achei e ja to compilando com as libs Rddcdx.lib e a Rddntx.lib.

Ainda falta descobrir qual a lib do harbour que corresponde a Pcrepos.lib

É que ainda falta achar as funções: hb_fun_Openprocess e hb_fun_Default e, provavelmente, essas 2 funções que ainda faltam, se encontram nessa lib, né ???


gabriel
lugab
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Re: Migrando de Xharbour 1.0 para Harbour 2.0...

Mensagem por Stanis Luksys »

Olá,

Olhando aqui, me parece que a função foi apenas renomeada para hb_processOpen() . Você pode usar um translate para corrigir isso. Acho que se você usar aquele cabeçalho tradutor que o clrod escrevou no outro tópico, deve resolver.

E essa função Default(), você usa pra alguma coisa? Segundo lí no guia do xharbour, essa função só serve pra atribuir um valor padrão numa variável. Talvez dê pra você fazer um translate também, caso já não tenha naquele arquivo tradutor.

Abraços!
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Re: Migrando de Xharbour 1.0 para Harbour 2.0...

Mensagem por lugab »

Isso mesmo, Stanis.

No Harbour, O nome mudou para hb_processOpen().

Agora, sobre a função Default(), eu não sei o q fazer, pois me faltam recursos técnicos, pra isso.

A função está nas linhas de comando abaixo e eu sei q vou ter q substitui-las:

Código: Selecionar todos

default(@cParam,'')
default(@lWait,.f.)


gabriel
lugab
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Re: Migrando de Xharbour 1.0 para Harbour 2.0...

Mensagem por Stanis Luksys »

Opa,

Como eu disse, o que essa função faz é apenas atribuir um valor para uma variável, que é passada por referência.

Não posso garantir porque só tenho aqui o código do Harbour, mas provavelmente se você criar algo assim, já deveria resolver:

Código: Selecionar todos

Function default( xvar, xvalor )
 xvar = xvalor
Return NIL
Cara, não tenho certeza disso, mas tente desta forma e nos diga se deu certo...

Um outra forma seria achar essa função lá nos fontes do xHarbour e agregar em alguma lib sua, ou mesmo do harbour, e recompilar.
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Re: Migrando de Xharbour 1.0 para Harbour 2.0...

Mensagem por lugab »

Valeu, Stanis..

Vou fazer isso mesmo. Vou olhar os fontes do abandonado xharbour e se não achar a dito-cujo, aproveito sua CONTRIB ao harbour...

Qdo conseguir, eu vou postar aqui, pra servir a outros trainees "a la eu", q vem neste fórum aprender com vcs...

Muito obrigado por tudo,


Gabirel
lugab
clrod
Usuário Nível 2
Usuário Nível 2
Mensagens: 79
Registrado em: 17 Nov 2009 13:42
Localização: São Paulo - SP

Re: Migrando de Xharbour 1.0 para Harbour 2.0...

Mensagem por clrod »

Olá

Vocês estão carregando a xhb.lib na compilação? E o xhb.ch?

Já deram uma olhada na hbcompat.ch? Lá dá para entender muita coisa do que muda e lá inclusive traduz o openprocess p/ processopen e viceversa, já que o ch é para traduzir do Harbour p/ o xHarbour também.

Se não quiser criar uma função para a default, pode usar algo assim: (não testei, fiz agora)

#xcommand default(@<v1>, <x1>) => IF <v1> == NIL ; <v1> := <x1> ; END ;

ou

#xtranslate default(@<v1>, <x1>) => Iif(<v1> == NIL , (<v1> := <x1>), NIL)

Para funcionar como função em qualquer lugar.

Isso é o que essa função defalut deveria fazer.

Ou pode usar o comando DEFAULT <xVar> TO <valor> [, xVarN TO xValorN] que já estã definido no Harbour.

T+
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Re: Migrando de Xharbour 1.0 para Harbour 2.0...

Mensagem por lugab »

Obrigado, Clrod, e Stanis.

A inclusão de xhb.lib E xhb.ch, permitiu ao compilador traduzir o Openprocess() bonitinho.

E pesquisando na hbcompat.ch, constatei que default() virou Hdefault()

Agora deu zero erro e tudo é só alegria..

Ja executei e percebi que o Dbedit() se comporta de forma estranha, bem diferente de como se comportava no xharbour()

Mas isso agora é uma outra história, a se desvendar o enredo.

Grato a todos

Gabriel
lugab
clrod
Usuário Nível 2
Usuário Nível 2
Mensagens: 79
Registrado em: 17 Nov 2009 13:42
Localização: São Paulo - SP

Re: Migrando de Xharbour 1.0 para Harbour 2.0...

Mensagem por clrod »

Olá

HDefault não é outra coisa, é um Default para uma estrutura do tipo Hash, por isso o H no início.

O Dbedit do Harbour é compatível como Clipper e não com o xHarbour.

T+
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Re: Migrando de Xharbour 1.0 para Harbour 2.0...

Mensagem por lugab »

Clrod, desculpe, mas eu não entendi.

Como assim "O Dbedit do Harbour é compatível como Clipper e não com o xHarbour." ?

Tu pode explicar , num nível um pouco mais baixo ?
lugab
clrod
Usuário Nível 2
Usuário Nível 2
Mensagens: 79
Registrado em: 17 Nov 2009 13:42
Localização: São Paulo - SP

Re: Migrando de Xharbour 1.0 para Harbour 2.0...

Mensagem por clrod »

Olá

O Harbour faz o que fazia no Clipper ao contrário do xHarbour que modificou a comportamento de várias funções. A preocupação do Harbour é ser 100% compatível com Clipper e extender a linguagem com funcionalidade nova não alterar o que já existe.

T+
Responder