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: 1234
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: 20453
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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