Migrando do Clipper para o Harbour

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

Moderador: Moderadores

alvaro.bernardi
Usuário Nível 1
Usuário Nível 1
Mensagens: 40
Registrado em: 22 Nov 2008 11:02
Localização: Porto Velho

Migrando do Clipper para o Harbour

Mensagem por alvaro.bernardi »

O que FUNCIONA no Clipper e NÃO funciona no Harbour e gera erro ou tenho que modificar...

- Sei que tenho que transformar todas as procedures em funções;
- que tenho que colocar o método Main();

o que mais ???
Álvaro de Oliveira Bernardi
Microline Software
Porto Velho - RO
Avatar do usuário
software_facil
Usuário Nível 3
Usuário Nível 3
Mensagens: 211
Registrado em: 23 Fev 2005 12:19
Localização: Curitiba/PR
Contato:

Re: Migrando do Clipper para o Harbour

Mensagem por software_facil »

O caminho é longo mas não é dificil :

1 - vc precisa ter em mente que, ir para o harbour, não vai trazer uma interface gráfica para o seu aplicativo, vai ficar tudo como está, para conseguir um programa "for windows", vc deve juntar ao harbour alguma lib gráfica, tem várias, entre elas, minigui, hwgui, fivewin ;

2 - pegar o seu código clipper, e migrar para o harbour somente, vai precisar do que vc disse, tudo ser função e no prg principal começar por "function main", feito isso, vc precisa ter o harbour e o borland c++ instalados em sua máquina e a variável de ambiente path setada para as pastas onde estão os executáveis (bin), os arquivos .ch (include) e as libs (lib). para gerar o script de compilação e linkedição, vc pode fazer na mão (mais trabalhoso) ou usar algum programa que faça isso por vc, como o hbmake (vem junto com o harbour). existem outras possibilidades, só estou falando o método que acho melhor.

podem surgir problemas, claro, mas rapidamente vc acostuma em saber onde estão as libs, e qual tem compatibilidade com as do clipper, portanto, se vc não usa nenhuma lib no seu programa clipper, que não tenha no harbour, tudo ocorrerá tranquilamente.

Abraços
messenger : software_facil@hotmail.com
alvaro.bernardi
Usuário Nível 1
Usuário Nível 1
Mensagens: 40
Registrado em: 22 Nov 2008 11:02
Localização: Porto Velho

Re: Migrando do Clipper para o Harbour

Mensagem por alvaro.bernardi »

Até ai tudo bem, tudo entendido, mas tenho problemas com arquivos de funções que existe, está marcado para compilação com o hbmake (funcoes.prg, netuse.prg, etc...) mas que não sei por qual cargas d'agua o harbour compila mas na hora de lincar o ilink32 chia e retorna os seguintes erros (p. ex.)

Error: Unresolved external '_HB_FUN_LOADSETUP' referenced from OBJ\SIAD.OBJ
Error: Unresolved external '_HB_FUN_MENUS' referenced from OBJ\FUNCOES.OBJ
Error: Unresolved external '_HB_FUN_LIMPA' referenced from OBJ\FUNCOES.OBJ
Error: Unresolved external '_HB_FUN_CALEND' referenced from OBJ\SIAD.OBJ
Error: Unresolved external '_HB_FUN_MAQUINA' referenced from OBJ\SIAD.OBJ
Error: Unresolved external '_HB_FUN_SENHA' referenced from OBJ\SIAD.OBJ

essas funções existem dentro do arquivo funções mas não linca....

já usei o hbmake, o brmake e o xDev, todos retornam os mesmos erros..

estes erros são alguns de uma grande lista, todos funções contidas dentro de arquivos existentes (.prg) e devidamente marcados para compilação.
Álvaro de Oliveira Bernardi
Microline Software
Porto Velho - RO
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: Migrando do Clipper para o Harbour

Mensagem por gvc »

Se vc esta usando o HBMake, poste o seu arquivo .BC
Vc selecionou todos os fontes para compilar?
Vc definiu a pasta para os arquivos OBJ´s ?
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: Migrando do Clipper para o Harbour

Mensagem por Hasse »

Só para lembrar... Verifique...

Cada PRG deve começar com:

FUNCTION LOADSETUP()
ou
PROCEDURE LOASDSETUP()

No Clipper basta juntar o PRG ao * clp do Clipper, mas no xHarbour cada PRG deve o seu nome corretamente declarado.

Eu pessoalmente migrei para o xHarbour somente para possibilitar a impressão com Jato de Tinta, via driver das impressoras do Windows, já que as antigas via DOS desapareceram do mercado. Para isto estou usando somente a classe Win32prn(). Com ela faço tudo aquilo que necessito no momento, inclusive impressão de logos, código de barra e gráficos.

Aos poucos passei a usar muitas funções exclusivas do xHarbour, que muito facilitam a programação.

No futuro, certamente, migrarei para alguma LIB gráfica. Ainda estou estudando e testando as ditas.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
alvaro.bernardi
Usuário Nível 1
Usuário Nível 1
Mensagens: 40
Registrado em: 22 Nov 2008 11:02
Localização: Porto Velho

Re: Migrando do Clipper para o Harbour

Mensagem por alvaro.bernardi »

Maravilha.....

Consegui migrar (quase) totalmente o programa, faltou apenas as chamadas para a impressora Schalter, que usa uma lib do fabricante, e não consegui linca-la no programa, tive que desabilitar as chamadas para funções dessa lib. As demais impressoras (Bematech, Yanco, etc.) compilaram....

Existe alguma forma de lincar libs de terceiros (que não tenho os fontes) nos programas em Harbour ????

No caso de eu utilizar dll's, irá funcionar?, e quando migrar para o Linux, que é nossa meta, como ficaria o uso de dll's, já que não encontrei .so dessas dll's ?
Álvaro de Oliveira Bernardi
Microline Software
Porto Velho - RO
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Migrando do Clipper para o Harbour

Mensagem por sygecom »

Olá Alvaro,
Primeiro que LIB do clipper não podem ser usadas no xharbour, segundo se você não tem os fontes da LIB, pode fazer uma pratica não muito boa, mas que pode dar certo no seu caso, compile sua app que usa essa LIB com rtilnk do clipper e depois descompile usando o rescue, e pegue os fontes retornado por ele.
Sobre as DLL, essas relamente não funcionam nativamente no LInux, terá que conseguir os .SO(DLL) ou .O(LIB) da mesma para usar no linux, outra alternativa que pode TENTAR é rodar pelo WINE no linux, quem sabe reconhece as DLL do Windows.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder