Página 1 de 1

Erro: E0042 Macro of declared

Enviado: 03 Set 2011 00:55
por clodoaldomonteiro
Olá amigos!

Estou tentando usar o Harbour 3.0 e quando fui compilar apareceu esse erre ai, ou seja, todas as macros de substituições estão dando erro.

Exemplo:

Código: Selecionar todos

mValor:=0
for i=1 to 12
   a=strzero(i,2)
   mValor+=pla_deb&a
next
Alguém sabe como resolver esse erro?

Erro: E0042 Macro of declared

Enviado: 03 Set 2011 09:22
por clodoaldomonteiro
Já corrigi o erro.
É que eu tava declarando as variáveis que ia usar como macro

Exemplo:

Código: Selecionar todos

local mValor:=0, ii //o harbour 3.0 não aceita declarar as variáveis que vou usar como macro de substituição
for i=1 to 12
   ii=strzero(i, 2)
   mValor+=pla_debito&ii
next
Sendo assim, o harbour 3.0 faz uma verificação melhor no código fonte.

Erro: E0042 Macro of declared

Enviado: 24 Jul 2018 14:49
por microvolution
clodoaldomonteiro escreveu:local mValor:=0, ii //o harbour 3.0 não aceita declarar as variáveis que vou usar como macro de substituição
aconteceu comigo a mesma coisa.
Aí um outro colaborador me mandou este link.
Nos meus testes descobri que o HARBOUR não aceita declarar a varíavel que será usada na macrosubstituição como variável do tipo LOCAL.

Então, se vc clodoaldomonteiro usar os comandos PRIVATE ou PUBLIC vai aceitar a declaração das variáveis para MACRO-SUBSTITUIÇÃO.

Forte abraço!

Erro: E0042 Macro of declared

Enviado: 24 Jul 2018 23:37
por JoséQuintas
É que tem uma coisa que esquecem.... macro não precisa ser de variável.

Código: Selecionar todos

LOCAL cCampo

cCampo := "cliente->codigo"
? &( cCampo )
FOR nCont = 1 TO 9
   ? &( cCampo + Str( nCont, 1 ) )
NEXT