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.
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
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)
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
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.