Página 2 de 2

Erro HB_FUN aparece diversas vezes, como resolver ?

Enviado: 14 Jan 2021 18:36
por ricardosierban
Olá, instalei a versão mais atual do harbour, porém o problema que estou encontrando no momento não deve ser relativo a versão, mas sim a programação/conversão (Clipper/Harbour).

Aparece agora o erro abaixo.

BIBLIOTE.prg(717) Error E0042 Macro of declared symbol '&cor_5'
BIBLIOTE.prg(2953) Error E0042 Macro of declared symbol '&cor_4'

Pelo o que encontrei é um erro de conversão relacionado a macros, mas ainda não descobri como resolver.

Li também que este erro não costuma ocorrer no xHarbour, mas eu quero continuar usando o Harbour.

Caso alguém tenha um material/texto que eu possa ler para resolver este problema, ou mesmo passar uma solução, eu agradeço.

Erro HB_FUN aparece diversas vezes, como resolver ?

Enviado: 14 Jan 2021 18:48
por marcosgambeta
Veja se esta informação ajuda:

https://pctoledo.org/forum/viewto ... =4&t=12310

Erro HB_FUN aparece diversas vezes, como resolver ?

Enviado: 14 Jan 2021 20:02
por ricardosierban
Vou verificar, obrigado.

Erro HB_FUN aparece diversas vezes, como resolver ?

Enviado: 14 Jan 2021 20:15
por ricardosierban
Realmengte ainda não entendi como acertar o problema do erro de macros, mas continuar tentando...

Erro HB_FUN aparece diversas vezes, como resolver ?

Enviado: 14 Jan 2021 20:47
por Jairo Maia
Para usar alguma variável como macro elas não podem ser declaradas como variáveis LOCAL, apenas PRIVADAS OU PUBLICAS.

Erro HB_FUN aparece diversas vezes, como resolver ?

Enviado: 14 Jan 2021 22:09
por JoséQuintas
Pode resolver também &( variavel )
A diferença é que vai ser usado o valor, e não a variável, então sem problemas.
Mas em alguns casos vai ser um pouco diferente.

cCont := "10"
? Campo&cCont

Aí poderia alterar pra &( "campo" + cCont )

Acaba expandindo as opções, ao invés de limitar.
Por exemplo & ( "campo" + StrZero( nCont, 2 ) )

Onde por macro precisaria até de mais fonte.

É que aonde a macro vai ser "traduzida", a variável pode não estar disponível, como por exemplo se for local.
Mas usando parêntesis, está usando o resultado do cálculo, e não vai precisar de variável aonde executa a macro.

Erro HB_FUN aparece diversas vezes, como resolver ?

Enviado: 15 Jan 2021 09:28
por asimoes
No meu teste funcionou assim:

Código: Selecionar todos

   FOR i:=1 TO 10
       cVar   :=  "codigo" + strzero( i,2)
       &cVar. := StrZero(i,2)
    NEXT

    cCampo := "codigo"

    FOR nCont = 1 TO 10
      oBtn := &( cCampo + Strzero( nCont, 2 ) )
    NEXT

Erro HB_FUN aparece diversas vezes, como resolver ?

Enviado: 15 Jan 2021 10:11
por asimoes
Outra forma:

Código: Selecionar todos

    cVar := ""
    
    FOR i:=1 TO 10
       &cVar. := &( cVar   :=  "codigo" + strzero( i,2) ) :=  StrZero(i,2)
    NEXT

Erro HB_FUN aparece diversas vezes, como resolver ?

Enviado: 15 Jan 2021 10:21
por ricardosierban
Bom dia à todos, o erro das macros não aparece mais, usei este comando como teste:

#pragma -w0
#pragma -es0

Entendi que é estilo uma "blibioteca" que "força" o C a compilar o programa.Os erros sumiram, mas continua o problema abaixo:

Erro 1: hbmk2: Erro: Executando linkeditor. 1

Erro 2:
hbmk2: Erro: Referenciado, faltando, mas funções desconhecida(s): CENTRA(),
BARRAS(), BAK_UP()

Passo a passo parece que estou resolvendo (com a ajuda dos senhores, claro), mas digo uma coisa, criar um programa do zero em Harbour dá muito mais prazer do que converter programas antigos em Clipper :)

Boa sexta feira á todos !

Erro HB_FUN aparece diversas vezes, como resolver ?

Enviado: 15 Jan 2021 10:31
por asimoes
Mudando um pouco de assunto, descobri uma coisa interessante usando for each

DataCarga estava atribuido com Nil

Durante o For Each...

__DefaultNIL( @oElemento["DataCarga"], Date() )

Trocou para Data e passando oElemento com @ referência

Erro HB_FUN aparece diversas vezes, como resolver ?

Enviado: 19 Jan 2021 10:41
por asimoes
ricardosierban escreveu:Erro 2: hbmk2: Erro: Referenciado, faltando, mas funções desconhecida(s): CENTRA(),
BARRAS(), BAK_UP()
Está faltando alguma lib que contém essas funções ou procedures, ou algum fonte que contém essas funções que não está no hbp