Erro: E0042 Macro of declared

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

Erro: E0042 Macro of declared

Mensagem 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?
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

Erro: E0042 Macro of declared

Mensagem 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.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

Erro: E0042 Macro of declared

Mensagem 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!
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Erro: E0042 Macro of declared

Mensagem 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
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder