Página 1 de 1

Migrando clipper para xharbour

Enviado: 21 Set 2006 17:35
por Jarbas
Pessoal, boa tarde, estou realizando alguns testes e segui as orientações do topico "Migrar para Harbour / xharbour" , quando eu vou gerar o exe atraves do BRMAKE , ele compila todos os PRGS mas na hora de linkar ele dá a seguinte mensagem :

Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error : Unresolved external '_hb_sxdecrypt' referenced from c:\xharbour\lib\rdd.lib|dbf1
Error : Unresolved external '_hb_sxPtoD' referenced from c:\xharbour\lib\rdd.lib|dbf1

E ASSIM VAI . . .

Detalhe inicialmente ele reclamou da HBCT.LIB , eu troquei pra CT.LIB, depois ele reclamou da DBFDBT.LIB eu apaguei essa linha da BRMAKE.INI.

Desde já mto obrigado.

Enviado: 21 Set 2006 21:49
por Luiz
Provavelmente esta faltando a hbsix.lib na linkagem

Enviado: 22 Set 2006 00:13
por Stanis Luksys
Ola amigo,

Procure utilizar o hbmake para compilar seus programas, ele minimiza este tipo de problemas, e já vem por padrão no pacote do xharbour, nas ultimas versões. Além do que funciona no linux também.

Basta entrar no seu diretorio de fontes pelo prompt e digitar:

hbmake projeto.bc

Depois é só seguir a lógica, não tem muito como errar.

Falou.

Enviado: 22 Set 2006 18:12
por Jarbas
Eu gostario de agradecer ao Luiz e também ao stanis pelas respostas, realmente estava faltando a hbsix.lib no brmake.ini . Eu tambem criei o executavel atraves da hbmake e deu certinho . Obrigado pela ajuda .

Tenho uma duvida : transformando eu aplicativo de clipper para xharbour eu não preciso mudar nada ?? Posso simplesmente pegar o executavel gerado e instalar no cliente ??

Desde já agradeço

Enviado: 22 Set 2006 23:01
por Stanis Luksys
Olá,

Se você compilou, e realizou uma boa bateria de testes, pode sim, basta substituir o executável antigo em Clipper pelo atual em xHarbour.


Ok...

Enviado: 27 Set 2006 16:09
por Jarbas
Pessoal , boa tarde

Estou convertendo o meu sistema de Clipper 5.2e para xHarbour 0.99.60 e dá o seguintes erros :

++++++++++++++++++++ Internal Error Handling Information +++++++++++++++++++++

Subsystem Call ..: BASE
System Code .....: 1003
Default Status ..: False
Description .....: Variable does not exist
Operation .......: VENDAS
Arguments .......:
Involved File ...:
Dos Error Code ..: 0

Trace Through:
----------------
CHK_DIREC : 998 in Module: VENDAS.PRG
MAIN : 130 in Module: VENDAS.PRG

ESTE É O CODIGO :

dbselectarea("Direc")
dbgotop()
lA_DirVen:=alltrim(vendas)+if(right(alltrim(vendas),1)='\','','\')
lA_DirEst:=alltrim(estoque)+if(right(alltrim(estoque),1)='\','','\')
lA_DirFat:=alltrim(fatura)+if(right(alltrim(fatura),1)='\','','\')

ESTE PROBLEMA É RESOLVIDO INCLUINDO "FIELD->" ANTES DO CAMPO

Enviado: 27 Set 2006 16:11
por Jarbas
Continuando . . .

Eu vou ter que verificar todos os PRGS e colocar FIELD-> ???


Mto OBrigado
Abs
Jarbas

Enviado: 28 Set 2006 07:40
por Luiz
O codigo está correto, mas como acusou a falta da variavel Vendas, então existem 2 hipoteses:

O arquivo Direc pode não ter o campo Vendas (ou por exemplo estar como Venda), dê uma verificada nele.

Ou então a area não está sendo selecionada, apesar do dbselectarea("Direc") parecer estar correto (teste com o comando Select, Select Direc).

Tente tambem usar Direc->Vendas

Eu nunca usei Field, geralmente uso o alias como prefixo ou então uso puro mesmo como no seu código (mas eu tenho por padrão próprio definir o nome de todos os campos iniciando com "z", tipo: zcVendas, uso assim pra evitar me confundir).

Espero ter ajudado.