Página 1 de 2

Migrar Clipper para Harbour com lib proprias

Enviado: 23 Out 2013 18:16
por Eros
Ola, estou tentando migrar minhas aplicações comerciais e contabeis de clipper 5.2 para harbour.

Baixei, instalei, segui as informações que tenho aprendido e conseguido nesse portal.

Consegui configurar, compilar e gerar o executavel da minha aplicaçao, usando como editor o xDev Studio v0.70 para aprender a mexer.

Como inicio, configurei a compilaçao para neste editor, para Clipper + ExoSpace e inclusive consegui gerar o executavel.

Porém, eu uso diversas funções proprias, funções que eu mesmo escrevi, estao o formato .OBJ que compilo e link junto aos nosso .PRg na hora de compilar para clipper.

Uso tambem browse com o aplicativo Assiste, fazendo os lançamentos serem exibidos e manipulados em formato browse.

Porem usando o xDev Studio, compilo e gero o executavel, mas nao consigo fazer nem abrir o aplicativo.

Nessa migraçao, de clipper nao é possivel faze-la usando funções proprias ?

So funciona, se usar clipper puro e mais nada ?

Migrar Clipper para Harbour com lib proprias

Enviado: 23 Out 2013 18:32
por Eros
Evidentemente fiz as configuraçoes do projeto no xDev Studio, apontando para as pastas corretas.

Tambem tentei fazer a compilaçao do projeto para Harbour e ai, ficou pior. Nao consegui nem gerar o .EXE. Vi e aprendi, que na compilaçao para Harbour, vai ser criado os meus fontes .PRG reescritos em .C e gerado arquivos .OBJ para a compilaçao.

Porem, estou parado neste ponto.

Atraves do xDev Studio, nao consigo compilar minha aplicaçao nem em Clipper em 16 bits e muito menos em Harbour em 32 bits. Porem, os mesmos fontes sao perfeitamente compilados ataves do meu bat em clipper, no ms-dos.

Quanto as configurçoes de path tambem, ja revisei tudo.

Migrar Clipper para Harbour com lib proprias

Enviado: 23 Out 2013 21:51
por Itamar M. Lins Jr.
Use o xedit do Xailer, é mais fácil.
Só abrir um aquivo do hbmk2 ".hbp"
Procure informações de como criar o arquivo.hbp para o hbmk2.


Saudações,
Itamar M. Lins Jr.

Migrar Clipper para Harbour com lib proprias

Enviado: 24 Out 2013 08:15
por Toledo
Eros escreveu:Nessa migraçao, de clipper nao é possivel faze-la usando funções proprias ?
Sim, é possível, desde que você tenha os arquivos PRG destas funções. Com o Harbour, não é possível usar arquivos OBJ compilados com o Clipper.
Eros escreveu:Baixei, instalei, segui as informações que tenho aprendido e conseguido nesse portal.
Eros, me responda o seguinte:

- Qual a versão do Harbour que você está usando e em que pasta está instalado?
- No seu programa Clipper, além dos OBJ com funções próprias, você usa alguma LIB de terceiros, que não seja as LIBs que já vem na instalação do Clipper? Se sim, quais são estas LIBs?
- No arquivo PRG principal do seu programa, que você está tentando compilar com o Harbour, você colocou a FUNCTION MAIN()?

Bom, não uso o xDev Studio (o Vailton poderia lhe ajudar com este editor), mas posso tentar lhe ajudar em uma compilação simples, criando os arquivos necessários para compilação através de linha de comando, como é feito no Clipper.

Abraços,

Migrar Clipper para Harbour com lib proprias

Enviado: 24 Out 2013 08:42
por Eros
Sim, tenho os .PRG das funções que criei e uso nos meus aplicativos, embora tenham sido compiladas em clipper, posso recompila-las.

A versap que baixe e estou usando do xHarbour e 1.2.1 (Simplex) Rev 6633.

Além das libs nativas do clipper, uso as minhas lib e tambem Catools.

Sim, no meu .prg principal, ja tenho a function Main(). Nela tenho as definições do nome da aplicaçao, versao.

Nao achei dificuldade em uxar o xDev Studio, so que nao consigo fazer minha aplicação compilada, ainda que no clipper + exosapce, funcionar, embora esteja gerando o .exe.

E complilando-a em Harbour, ai nao consegui avanço mesmo.

Migrar Clipper para Harbour com lib proprias

Enviado: 24 Out 2013 09:22
por Toledo
Eros escreveu:A versap que baixe e estou usando do xHarbour e 1.2.1 (Simplex) Rev 6633.
Existe alguma razão de querer usar o xHarbour? Não poderia ser o Harbour?
Eros escreveu:Além das libs nativas do clipper, uso as minhas lib e tambem Catools.
As funções da CATools tem no Harbour, agora as "minhas lib" você tem que ter os arquivos fontes (PRG).
Eros escreveu:Nao achei dificuldade em uxar o xDev Studio, so que nao consigo fazer minha aplicação compilada
Bom, como lhe disse, não uso o xDev Studio, então minha ajuda será sem o uso desta aplicação.

Abraços,

Migrar Clipper para Harbour com lib proprias

Enviado: 25 Out 2013 19:17
por JoséQuintas
Conforme já foi sugerido, no Harbour pode facilitar.
Eu não usaria nenhuma ferramenta diferente pra não atrapalhar, senão vai estar tentando configurar a ferramenta, e não a sua compilação.
Se usar o hbmk2 (do harbour), é só incluir a lista de prgs e libs num arquivo hbp.
Se sua pasta de PRGs só contém PRGs úteis, pode também usar hbmk2 *.prg.

Pra reforçar o que foi falado: OBJ e LIB são arquivos compilados. o OBJ do Clipper é DOS/16 bits. O OBJ do Harbour é Windows/32 Bits.
Não dá pra misturar os dois. No Harbour também vai poder criar seus OBJs e LIBs, mas num primeiro momento, quanto menos coisa pra dar errado melhor.

Migrar Clipper para Harbour com lib proprias

Enviado: 25 Out 2013 20:01
por Itamar M. Lins Jr.
Eu estou sugerindo o xEdit do Xailer, por ser infinitamente mais fácil de usar, eu era um usuário do xDev, muito bom por sinal na sua época, infelizmente como muitas outras ferramentas não open source está parado no tempo.
O xEdit tem tudo do xDev e outras coisas...
http://www.xailer.com/download?file=3

Saudações,
Itamar M. Lins Jr.

Migrar Clipper para Harbour com lib proprias

Enviado: 25 Out 2013 21:01
por JoséQuintas
Eu utilizo o Programmers Notepad há vários anos. É grátis e open.
Quando testei xdev, xedit e hbide, não gostei. Não sei se mudou alguma coisa desde aquela época.
Mas editor não é o problema, tem muitos, cada um usa aquele onde se sentir mais confortável.
Tem IDE que é um lixo. De repente vai achar Harbour complicado, e o complicado é a IDE.

Mas voltando ao problema inicial:
Uma diferença do Clipper para o Harbour é que obrigatoriamente tem que ser definido o programa principal.
Deve ser PROCEDURE Main ou FUNCTION Main().
Se não existir esse programa principal, nada acontece.

Se quiser testar antes no Clipper, é o equivalente a usar /n no clipper.
clipper programa /n

Usando /n, o nome externo do fonte não interessa. main.prg não significa que vai ser compilado com o nome de main.
Da mesma forma o nome do EXE também não interessa. Sempre o ponto de partida vai ser Main.
Por isso também é obrigatório nos fontes definir o nome dentro deles.

---TESTE.PRG
PROCEDURE TESTE

meu hbp sempre foi este, que as IDEs nem aceitam:

Código: Selecionar todos

*.c
*.prg
jpa.rc
-oJPA

hbct.hbc
hbtip.hbc
hbhpdf.hbc
hbziparc.hbc
gtwvg.hbc
hbmisc.hbc
#rddado.hbc

-compr
-quiet
-winuni
-workdir=d:\temp
-inc
-strip
-m
-mt
-n
-es2
-w3
#-jobs=4
explicações:
*.c e *.prg, porque minha pasta é meu projeto, tudo que tem lá dentro é usado
-workdir=d:\temp, porque todo lixo de obj e c fica em temp, e posso apagar sem ter que ficar procurando onde está o lixo (no default do hbmk2, ele cria pastas que ficam escondidas pra acesso)
-quiet, pra não mostrar detalhamento. Se precisar fazer ajuste de alguma coisa só tirar
-compr, pra compactar
-strip, pra reduzir tamanho de EXE, seja compactado ou não.
-inc, incremental, pra perder menos tempo recompilando.
-mt, porque uso multithread
-jobs=4, pra usar os 4 núcleos de processador, mas não vi vantagem, já que o demorado é a linquedição
-oJPA, pra gerar como JPA.EXE
-m -n -es2 -w3 são os mesmos existentes no Clipper

os arquivos com final hbc são arquivos pré-definidos no Harbour, para quando se usa alguma dessas LIBs, e já acrescenta os #include e LIBs necessários.
o arquivo .rc é pra imagens

Migrar Clipper para Harbour com lib proprias

Enviado: 25 Out 2013 21:06
por JoséQuintas
corrigindo: não foi sempre esse, foi se modificando com o tempo, conforme as LIBs que eu fui adotando.

Migrar Clipper para Harbour com lib proprias

Enviado: 25 Out 2013 21:18
por Itamar M. Lins Jr.
O xEdit 3.0 é melhor p/ o programador xBase, eu tenho aqui também o notepad++ Claro que é minha opinião!
Atenção, existem 2 "xEdits" o do xHarbour é bem fraquinho, o do Xailer é muito mais profissional.

Saudações,
Itamar M. Lins Jr.

Migrar Clipper para Harbour com lib proprias

Enviado: 25 Out 2013 22:47
por JoséQuintas
Eu tento acreditar no que leio, mas é difícil.
Bastaram alguns minutos pra já ter um GPF.
Download feito às 22:27, erro às 22:43.

NÃO É o caso do Itamar, o Itamar programa muito, como já demonstrou várias vezes.
Mas presenciei aqui no fórum uma coisa que não entendi:
usuário que nem sequer usa Clipper/Harbour ficar sugerindo e até exemplificando bibliotecas e ferramentas.

Então use ferramentas básicas pra não se complicar.
Passada a primeira etapa, escolha ferramentas que te facilitem, que podem ser iguais ou diferentes de outros usuários.

Migrar Clipper para Harbour com lib proprias

Enviado: 26 Out 2013 09:52
por Itamar M. Lins Jr.
Pois é, eu uso o xEdit do Xailer já tem um bom tempo, nunca tive problema.
É igual das outras vezes que vc achava erros e mais erros no Harbour e dizia que não prestava, porém nada fazia p/ melhora-lo.
É simples, se este erro estivesse ocorrido aqui nos meus projetos, eu teria enviado a tela com erro, para o pessoal do Xailer p/ ver se eles tem interesse em concertar o erro.
Talvez vc não tenha configurado corretamente o xEdit não sei...Vai ver é "erro crasso" mesmo, e eu por sorte não tenho me encontrado com ele...

Saudações,
Itamar M. Lins Jr.

Migrar Clipper para Harbour com lib proprias

Enviado: 26 Out 2013 10:11
por Eros
Ja li e reli muito o material sobre o harbour, mas nao compreendi ainda, como fazer o meu arquivo para compilar e linkar.

No Clipper temos o arquivo CLD.LNK para fazer a compilaçao com debug, assim:

Tenho um C.Bat que que chama a rotina

@Echo off
Cls
Rmake MAKE /DCLD
Echo

A rotina executada em CLD.LNK esta abaixo:

BLINKER EXECUTABLE CLIPPER //F:250 //SWAPK:65535 //DYNF:8 //E:0
BLINKER EXECUTABLE EXTENDED 2048
BLINKER EXECUTABLE NODELETE
BLINKER INCREMENTAL ON

fi ae
fi aedbfs
fi struct

fi c:\catools\obj\ctintp
fi c:\catools\obj\ctusp
fi c:\cl5\udfs\semexo
fi c:\cl5\lib\__wait.obj
fi c:\cl5\lib\cld.lib
fi c:\cl5\obj\clpdv

fi c1000

Fi c1100

Fi c1110
Fi c1113
Fi c1114

Fi c1120
Fi c1130
Fi c1131
Fi c1132

Fi c1140
Fi c1150

Fi c1170
Fi c1171
Fi c1172
Fi c1174

Fi c1190
Fi c1191

Fi c1200
Fi c1210
Fi c1220
Fi c1221

Fi c1230
Fi c1240
Fi c1241
Fi c1242
Fi c1243
Fi c1244

Fi c1250
Fi c1260
Fi c1270
Fi c1290
Fi c1292

Fi c1300
Fi c1301
Fi c1302
Fi c1302A
Fi c1302B
Fi c1302C
Fi c1302F
Fi c1302G

Fi c1303
Fi c1304
Fi c1305

Fi c1309

Fi c1310
Fi c1311
Fi c1312
Fi c1313
Fi c1314
Fi c1315

Fi c1320
Fi c1330
Fi c1331
Fi c1350
Fi c1351
Fi c1352
Fi c1356

Fi c1360
Fi c1361
Fi c1362
Fi c1363
Fi c1364

Fi c1370
Fi c1371
Fi c1372
Fi c1375
Fi c1376
Fi c1377
Fi c1378
Fi c1379
Fi c1380
Fi c1381
Fi c1382
Fi c1383

Fi c1390
Fi c1391
Fi c1392

Fi c1510

Fi c1641
Fi c1643
Fi c1644

Fi c1900
Fi c1910
Fi c1920
Fi c1930
Fi c1940
Fi c1950
Fi c1960
Fi c1970
Fi c1980
Fi c1990

Fi c11N0

fi Forcal
fi RotCal
fi ConvFor

Search c:\cl5\bl5\lib\blxclp52.lib
Search c:\cl5\bl5\lib\blxratex.lib

Lib c:\cl5\lib\udfs
Lib c:\cl5\lib\qc
Lib c:\cl5\lib\assist
Lib c:\cl5\lib\hprot
Lib c:\cl5\lib\clipper
Lib c:\cl5\lib\qscreen
Lib c:\cl5\lib\samples
Lib c:\cl5\lib\ctp
Lib c:\cl5\lib\ptools
Lib c:\cl5\lib\_acento
Lib c:\cl5\lib\dbfcdx

@c:\cl5\bl5\clp\lnk\cl520max.lnk

Out AE100

Para Harbour vou fazer a mesma coisa ?

Terei um arquivo .LNK com a listagem dos fontes e bibiotecas para compilar no Harbour ? Esse arquivo vai ser .LNK ou tem outro formato e extensao ?

Isso nao ficou claro para mim ainda.

Migrar Clipper para Harbour com lib proprias

Enviado: 26 Out 2013 10:30
por Itamar M. Lins Jr.
Se for usar o xHarbour, vai ter que aprender a usar o hbmaker, e criar o arquivo final com ele.
Já usando o Harbour vc edita/cria com qualquer editor um aquivo com a extensão .hbp [Harbour Project]

No seu caso ficaria assim: cld.hbp
Essas coisas do blinker pode tirar tudo!

#BLINKER INCREMENTAL ON
-inc //significa incremental.

ae.prg
aedbfs.prg
struct.prg

c:\catools\obj\ctintp.prg
c:\catools\obj\ctusp.prg
c:\cl5\udfs\semexo.prg
...
//Aqui tem um diretório com funções que são sempre as mesmas(CPF/CNPJ/etc), seria seus obj´s...
..\Shared\funcoes.prg
..\Shared\caixa.prg
-fim do cld.hbp
Espero ter ajudado.

Saudações,
Itamar M. Lins Jr.