Redefinition of procedure or function:

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

Moderador: Moderadores

alvaro.bernardi
Usuário Nível 1
Usuário Nível 1
Mensagens: 40
Registrado em: 22 Nov 2008 11:02
Localização: Porto Velho

Redefinition of procedure or function:

Mensagem por alvaro.bernardi »

Bom dia,

Estou migrando o sistema de modo texto para gráfico utilizando o o HwGui, porém ocorre o erro de "Redefinition of procedure or function:" que não ocorria quando compilado no modo texto com as opções /m /n ativadas, quando migrei do clipper para o Harbour coloquei em todos os PRGs "Function talFuncao_etc_etc", porém agora ele reclama. Tenho que retirar essa declaração de todos os prgs ?? ou existe alguma outra forma de contornar isso?

Alvaro de Oliveira Bernardi
Microline Software
Porto Velho - RO
Álvaro de Oliveira Bernardi
Microline Software
Porto Velho - RO
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: Redefinition of procedure or function:

Mensagem por Hasse »

Verifique se não há 2 ou mais funções com o mesmo nome na tua aplicação ou em alguma LIB usada.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Redefinition of procedure or function:

Mensagem por sygecom »

Alvaro,
Não prescisa refazer os nomes das functions.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
alvaro.bernardi
Usuário Nível 1
Usuário Nível 1
Mensagens: 40
Registrado em: 22 Nov 2008 11:02
Localização: Porto Velho

Re: Redefinition of procedure or function:

Mensagem por alvaro.bernardi »

Não existe outra função com mesmo nome...

está assim: (ex)

**********************************
* PROGRAMA : CAD_CID.PRG
* FINALIDADE : Cadastro de CIDADES
**********************************
#include "hwgui.ch"
#include "windows.ch"
#include "guilib.ch"

Function CAD_CID()
local INCLUI
....
....
....

O prg se chama CAD_CID e logo abaixo incluo a Function CAD_CID()

daí vem o erro...
Álvaro de Oliveira Bernardi
Microline Software
Porto Velho - RO
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Re: Redefinition of procedure or function:

Mensagem por rochinha »

Amiguinho

Em se tratando de Harbour o compilador pode entender tanto o nome do .PRG para chamadas de compilação como o nome da primeira função ou procedure do mesmo.

Voce possui uma função chamada X dentro de um X.PRG e no momento de compilar isto pode ser entendido como redefinição.

Portanto troque o nome desta função como MAIN() ja que é a primeira ou troque nomes de funções ou .PRGs.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Re: Redefinition of procedure or function:

Mensagem por janio »

O prg se chama CAD_CID e logo abaixo incluo a Function CAD_CID()
Em vez de Function CAD_CID(), coloque apenas Function CAD_CID(sem os parenteses) e veja o q acontece...
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: Redefinition of procedure or function:

Mensagem por Hasse »

Bom dia colegas.

Se for usado o HBMAKE certamente não são parênteses que estão ocasionando o erro. Não sei o que pode acontecer com outros makefiles. No início eu usei, por curto tempo, o BRmake, que se comportava de maneira diferente. E certamente isto pode acontecer com outros...

Em todos os meus sistemas uso os parênteses. O importante é que o módulo de partida tenha um determinado "nome.prg", mas seja definido como FUNCTION MAIN() ou PROCEDURE MAIN().

Os demais *.prg's devem ser definidos com um nome exclusivo, e em nenhum outro prg, inclusive no MAIN(), este nome pode ser usado novamente, nem mesmo em alguma LIB.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: Redefinition of procedure or function:

Mensagem por alaminojunior »

Exatamente, faça como o Hasse comentou aí em cima.

No programa principal, em vez de Function Cad_Cid, troque pra Function Main.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Re: Redefinition of procedure or function:

Mensagem por Eolo »

Em se tratando de Harbour o compilador pode entender tanto o nome do .PRG para chamadas de compilação como o nome da primeira função ou procedure do mesmo.
Rochinha, por hábito trazido do Clipper, eu ainda mantenho os arquivos PRG identificados "pelo que eles contêm". Então, o Cadastro de Nomes está no arquivo CN.PRG e dentro dele a função principal é a FUNCTION CN. Do mesmo jeito, o Contas a Pagar está no arquivo MP.PRG e a função principal é a FUNCTION MP. E assim vai, no sistema inteiro.

Aliás, esse arquivo CN.PRG contém também outras funções, não só a FUNCTION CN. Do mesmo jeito que os outros.

Então a sua afirmação, pelo menos pra mim, não confere. Uso o HBMAKE e o XH 1.0.0, e não tenho problema de redefinição de função ou procedure.


EM TEMPO: andei fazendo uns testes com isso, quando migrei do Clipper, e em 100% dos casos, os nomes das funções não tinham nada a ver com os nomes dos arquivos.
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Re: Redefinition of procedure or function:

Mensagem por Eolo »

Uma pergunta: considerando que no XHarbour o que vale são as funções - a começar pela MAIN(), e não os arquivos PRG, meros repositórios, não deveriam os INCLUDES da função do Álvaro estar DENTRO de alguma FUNCTION, na pior das hipóteses DENTRO da function MAIN? No post dele, os INCLUDES estão fora. Será que não é isso que tá bagunçando o meio de campo?

Código: Selecionar todos

**********************************
* PROGRAMA : CAD_CID.PRG
* FINALIDADE : Cadastro de CIDADES
**********************************
Function CAD_CID()
local INCLUI
#include "hwgui.ch"
#include "windows.ch"
#include "guilib.ch"
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Redefinition of procedure or function:

Mensagem por Maligno »

A função da diretiva #include é incluir o conteúdo de um arquivo texto qualquer (normalmente é um header) no ponto onde esta diretiva foi informada, seja dentro ou fora de uma função. Isso só vai depender da conveniência do código. Normalmente é no topo do fonte, se o conteúdo for de uso comum a todo o código no fonte. Mas pode ser dentro de uma função ou a partir de um ponto do código em que o conteúdo deste arquivo externo faça sentido. Em suma: funciona exatamente como se fosse digitado.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
alvaro.bernardi
Usuário Nível 1
Usuário Nível 1
Mensagens: 40
Registrado em: 22 Nov 2008 11:02
Localização: Porto Velho

Re: Redefinition of procedure or function:

Mensagem por alvaro.bernardi »

Já tenho uma função Main(), que é a função de entrada do programa, este seria um "sub-programa" uma função mesmo, ou procedure.
Na função Main() tenho a chamada para diversas sub-rotinas, como Fornecedores(), bancos(), Cadastros(), etc...

Nenhuma aceita que eu coloque function Nome_da_rotina() com o mesmo nome do prg.

Já tenho outros programas funcionando perfeitamente com esse padrão.
Álvaro de Oliveira Bernardi
Microline Software
Porto Velho - RO
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Redefinition of procedure or function:

Mensagem por sygecom »

Alvaro, vc esta usando o hbmake para compilar ? se sim poste por favor seu .BC !!!
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
alvaro.bernardi
Usuário Nível 1
Usuário Nível 1
Mensagens: 40
Registrado em: 22 Nov 2008 11:02
Localização: Porto Velho

Re: Redefinition of procedure or function:

Mensagem por alvaro.bernardi »

Uso o xDev
Álvaro de Oliveira Bernardi
Microline Software
Porto Velho - RO
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Redefinition of procedure or function:

Mensagem por sygecom »

Faça um teste usando o hbmake. se der certo pelo HBMAKE ai é uma configuração no xdev, não sei lhe dizer o que e como, pq não uso o xdev.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder